Java检查boolean是否为null

Del*_*ung 62 java performance boolean nullable

如何检查布尔值是否为空?所以,如果我知道"hideInNav"为空.如何阻止它进一步执行?像下面的东西似乎不起作用,但为什么?

boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
Run Code Online (Sandbox Code Playgroud)

Eic*_*ich 108

boolean只能是truefalse因为它是原始数据类型(+ boolean变量默认值是false).Boolean如果要使用null值,可以使用该类.Boolean是一种引用类型,这是您可以分配null给布尔"变量"的原因.例:

Boolean testvar = null;
if (testvar == null) { ...}
Run Code Online (Sandbox Code Playgroud)


Tre*_*man 40

A boolean不能null在java中.

Boolean但是,A 可以null.

如果a boolean没有赋值(比如一个类的成员)那么它将是false默认值.


Tom*_*Tom 7

在Java中,null仅适用于对象引用; 由于boolean是原始类型,因此无法分配null.

从你的例子中获取上下文很难,但我猜测如果hideInNav不在返回的对象中getProperties(),你指出的(默认值?)将是false.我怀疑这是你看到的错误,因为false它不等于null,所以hideNavigation得到空字符串?

您可以通过代码示例的更多上下文获得更好的答案.


Job*_*lon 7

唯一可以是a null的是非原始的.

A boolean只能持有TRUE或是FALSE原始的.在TRUE/ FALSE在内存实际上是数字(01)

0 =假

1 =正确

因此,当您实例化一个对象时,它将为null String str; // will equal null

另一方面,如果您实例化一个原语,它将被分配为0默认值.

boolean isTrue; // will be 0

int i; // will be 0

  • 在"A`布尔"中"布尔"的大写"..."是不幸的.类型为"boolean"的变量只能包含"true"和"false",但"Boolean"类型的变量包含"Boolean"对象或"null". (2认同)

Ken*_*abz 6

boolean 是原始类型,因此不能为null.

它的盒装类型Boolean可以为null.

该函数可能返回a Boolean而不是a boolean,因此将结果赋值给Boolean-type变量将允许您测试null.