Java检查布尔值是否为空
你如何检查一个布尔值是否为空? 所以如果我知道“hideInNav”是空的。 我如何阻止它进一步执行? 像下面的东西似乎不工作,但为什么?
boolean hideInNav = parent.getProperties().get("hideInNav", false); String hideNavigation = hideInNav != null ? hideInNav : "";
boolean只能是true或false因为它是一个基本的数据types (+ booleanvariables默认值为false )。 如果要使用null值,则可以使用类Boolean 。 布尔是一个引用types,这就是你可以将null赋值给布尔variables的原因。 例:
Boolean testvar = null; if (testvar == null) { ...}
Java中的boolean不能为null 。
但是Boolean可以为null 。
如果一个boolean没有赋值(比如一个类的成员),那么默认情况下它将是false 。
在Java中, null仅适用于对象引用; 因为boolean是一个原始types,所以它不能被赋值为null 。
很难从你的例子中获取上下文,但是我猜测如果hideInNav不在getProperties()返回的对象中,你指定的(默认值?)将是false 。 我怀疑这是你看到的错误,因为false不等于null ,所以hideNavigation获取空string?
你可能会得到一些更好的答案,你的代码示例有更多的上下文。
唯一可以是null的是非原始的。
一个只能保持TRUE或FALSE boolean是一个原语。 内存中的TRUE / FALSE实际上是数字( 0和1 )
0 =假
1 = TRUE
所以当你实例化一个对象时,它将是空的String str; // will equal null String str; // will equal null
另一方面,如果你立即一个原语,它将被分配到0默认值。
boolean isTrue; // will be 0
int i; // will be 0
boolean是一个基本types,因此不能为空。
它的装箱typesBoolean可以为null。
该函数可能返回Boolean而不是boolean ,因此将结果赋值给Booleantypesvariables将允许您testing是否为空。
null是分配给引用types的值。 null是一个保留的值,表示引用不像一个对象的实例。
一个boolean不是一个对象的实例。 这是一个原始types,如int和float 。 以同样的方式: int x的值为0 , boolean x的值为false 。
实际上原始数据types的默认值对于局部variables是空的。