如何检查布尔值是否为空?所以,如果我知道“hideInNav”为空。如何阻止它进一步执行?像下面的东西似乎不起作用,但为什么?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean
只能是true
或false
因为它是primitive datatype(+ a boolean
变量默认值是false
)。如果要使用Boolean
值,可以使用类null
。 Boolean是一个引用类型,这就是你可以将null
赋值给布尔“变量”的原因。例:
Boolean testvar = null;
if (testvar == null) { ...}
在java中,boolean
不能是null
。
然而,Boolean
可以是null
。
如果boolean
没有赋值(比如一个类的成员)那么默认情况下它将是false
。
在Java中,null
仅适用于对象引用;因为boolean
是原始类型,所以不能分配null
。
从你的例子中获取上下文很难,但是我猜测如果hideInNav
不在getProperties()
返回的对象中,那么你指出的(默认值?)将是false
。我怀疑这是你看到的错误,因为false
不等于null
,所以hideNavigation
得到空字符串?
您可以通过代码示例的更多上下文获得更好的答案。
唯一可能是null
的是非原始的。
只能持有boolean
或TRUE
的FALSE
是原始的。记忆中的TRUE
/ FALSE
实际上是数字(0
和1
)
0 =假
1 =正确
因此,当您实例化一个对象时,它将为null String str; // will equal null
另一方面,如果您实例化一个原语,它将被赋值为0 default。
boolean isTrue; // will be 0
int i; // will be 0
boolean
是一种原始类型,因此不能为null。
它的盒装类型Boolean
可以为null。
函数可能返回Boolean
而不是boolean
,因此将结果分配给Boolean
类型变量将允许您测试无效。
null
是分配给引用类型的值。 null
是保留值,表示引用不类似于对象的实例。
boolean
不是Object的实例。它是一种原始类型,如int
和float
。以同样的方式:int x
的值为0
,boolean x
的值为false
。