Vorrei capire la differenza tra i tipi Boolean
e boolean
in Java, in particolare per quanto riguarda GWT. So che i metodi non sono supportati ma voglio maggiori informazioni se sono disponibili.Qual è la differenza tra booleano e booleano in Java?
risposta
non sono sicuro se il fattore GWT fa la differenza, ma in generale:
booleano è un tipo primitivo Java mentre booleano è un tipo di oggetto/riferimento che avvolge un valore booleano
La conversione tra primitive e oggetti come questo è nota come box/unboxing.
Ecco ulteriori informazioni:
http://javaeye.wordpress.com/2008/06/17/boxing-and-unboxing-conversion/
Perché inscatolare si chiede?
http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html
In Java, un boolean
è un letterale true
o false
, mentre Boolean
è un involucro per un oggetto boolean
.
c'è raramente una ragione per usare un Boolean
su un boolean
tranne nei casi in cui è richiesto un riferimento all'oggetto, ad esempio in un List
.
Boolean
contiene anche il metodo statico parseBoolean(String s)
, di cui si può già essere a conoscenza.
Java ha tipi primitivi (int, boolean, galleggiante, ecc) e in qualsiasi momento si desidera usarli come un'istanza di un oggetto sono avvolti in un tipo di classe associata. Ad esempio, i booleani vengono incapsulati da Booleans, int come Integer ecc.
Anche i suoi vantaggi. boolean non ha metodi helper (dato che non è una classe), ma Boolean lo fa. Quindi, se volessi convertire una stringa in un booleano, potresti provare Boolean.valueOf ("true").
Spero che questo aiuti.
Per quanto riguarda GWT, sono uguali in GWT come in Java.
booleano è un valore primitivo e Boolean in un involucro di oggetti.
è abbastanza semplice e lo stesso per GWT e Java:
- booleana può essere sì o no
- booleana può essere sì, no o NULL.
Quindi, a meno che non hanno bisogno della NULL (come ad esempio il carico il campo dal database, e si desidera NULL di essere diverso da false) quindi attenersi ad booleani.
Secondo la documentazione di emulazione GWT JRE (http://code.google.com/webtoolkit/doc/1.6/RefJreEmulation.html) questi metodi sono supportati dal tipo booleano: booleano (booleano), booleano (String), parseBoolean (String), toString (booleano), valueOf (booleano), valueOf (String), booleanValue(), compareTo (Boolean), equals (Object), hashCode(), toString()
per quanto riguarda la differenza tra tipi di oggetti booleani e booleani. Gli oggetti booleani possono essere in 3 stati, quindi non è esattamente la stessa cosa. Ma se questo fa la differenza in GWT (prestazioni saggio) non ne ho la minima idea, la mia ipotesi è che non importa molto dal momento che il compilatore GWT ottimizzerà il codice e la maggior parte delle operazioni potrebbe semplicemente mappare a operazioni booleane javascript native.
Ma come al solito: per essere certi è necessario misurare (e tenere conto che questo potrebbe differire in base al browser/versione che si sta misurando).
Il tipo di oggetto booleano non viene in genere utilizzato molto spesso poiché il tipo nativo booleano è più naturale (non è necessario verificare sempre per null).
Poiché Boolean può essere nullo, può essere utilizzato per il caricamento lazy.
if(hasRoots == null){
calculateRoots();
}
booleana è un tipo primitivo, mentre booleano è involucro class.Same applica for (int, Integer), (molto, molto), ecc classi wrapper "avvolgere" il rispettivo tipo di dati primitivi in un oggetto di quel classe.
Vengono utilizzati con le raccolte, poiché i tipi primitivi non sono consentiti con le raccolte. Anche utilizzando le classi wrapper è possibile accedere a molti metodi che è possibile chiamare su quell'oggetto. Ad esempio. La classe wrapper di caratteri ha metodi come:
isDigit() - per determinare se il carattere è una cifra. isLower() - per determinare se il carattere è in minuscolo. è Letter() - per determinare se il carattere è un alfabeto.
non è possibile utilizzare i metodi precedenti se si utilizza un tipo primitivo rispetto a una classe wrapper.
Bello ... veloce e sporco! =) –
non c'è niente di sporco. – rustyshelf
Tnx così tanto !!! Quindi utile e chiaro espulsione – AndreaNobili