Wie prüft man, ob ein Boolescher Wert null ist oder nicht? Wenn ich also weiß, dass "hideInNav" null ist. Wie kann ich verhindern, dass es weiter ausgeführt wird? So etwas wie das Folgende scheint nicht zu funktionieren, aber warum?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
java
performance
boolean
nullable
Delmon Young
quelle
quelle
hideInNav
enthält eine Referenz auf einBoolean
Objekt und kann seinnull
(keine Referenz zugewiesen). Daher können Sie überprüfen, ob die Referenz istnull
.Boolean.TRUE.equals(xxx)
A
boolean
kann nichtnull
in Java sein.A
Boolean
kann jedoch seinnull
.Wenn a
boolean
kein Wert zugewiesen wird (z. B. ein Mitglied einer Klasse), ist diesfalse
standardmäßig der Fall .quelle
Das einzige, was ein sein kann,
null
ist ein Nicht-Primivit.A,
boolean
das nur halten kannTRUE
oderFALSE
ein Primitiv ist. DasTRUE
/FALSE
im Speicher sind tatsächlich Zahlen (0
und1
)Wenn Sie also ein Objekt instanziieren, ist es null
String str; // will equal null
Wenn Sie dagegen ein Grundelement instanziieren, wird es dem Standardwert 0 zugewiesen.
boolean isTrue; // will be 0
int i; // will be 0
quelle
Boolean
in "ABoolean
welches ..." ist unglücklich. Eine Variable vom Typboolean
kann nurtrue
und enthaltenfalse
, aber eine Variable vom Typ kannBoolean
einBoolean
Objekt enthalten, odernull
.null
Gilt in Java nur für Objektreferenzen. Daboolean
es sich um einen primitiven Typ handelt, kann er nicht zugewiesen werdennull
.Es ist schwierig, aus Ihrem Beispiel einen Kontext zu erhalten, aber ich vermute, dass
hideInNav
der vongetProperties()
Ihnen angegebene (Standardwert?) Ist, wenn er nicht in dem von zurückgegebenen Objekt enthalten istfalse
. Ich vermute , dass dies der Fehler ist , dass Sie sehen, wiefalse
nicht zu gleichnull
, sohideNavigation
wird die leere Zeichenfolge zu bekommen?Möglicherweise erhalten Sie bessere Antworten mit etwas mehr Kontext für Ihr Codebeispiel.
quelle
boolean
ist ein primitiver Typ und kann daher nicht null sein.Sein Box-Typ
Boolean
kann null sein.Die Funktion gibt wahrscheinlich a
Boolean
im Gegensatz zu a zurückboolean
. Wenn Sie das Ergebnis also einerBoolean
Variablen vom Typ -type zuweisen , können Sie die Nichtigkeit testen.quelle
null
ist ein Wert, der einem Referenztyp zugewiesen ist.null
ist ein reservierter Wert, der angibt, dass eine Referenz keiner Instanz eines Objekts ähnelt.A
boolean
ist keine Instanz eines Objekts. Es ist ein primitiver Typ, wieint
undfloat
. Auf die gleiche Weise wie:int x
hat einen Wert von0
,boolean x
hat einen Wert vonfalse
.quelle
boolean ist ein primitiver Datentyp in Java und primitive Datentypen können nicht wie andere primitive int, float usw. null sein. Sie sollten Standardwerte enthalten, wenn sie nicht zugewiesen sind.
In Java können nur Objekte null zugewiesen werden. Dies bedeutet, dass das entsprechende Objekt keine Referenz hat und daher keine Darstellung im Speicher enthält.
Wenn Sie also mit einem Objekt als Null arbeiten möchten , sollten Sie die Boolesche Klasse verwenden, die einen primitiven booleschen Typwert in das Objekt einschließt.
Zum Beispiel:
Boolean bool = readValue(...); // Read Your Value if (bool == null) { do This ...}
quelle