你如何检查一个布尔值是否为空?因此,如果我知道“hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但为什么呢?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
你如何检查一个布尔值是否为空?因此,如果我知道“hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但为什么呢?
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean只能是true或false因为它是原始数据类型(+boolean变量默认值为false)。Boolean如果您想使用null值,则可以使用该类。Boolean 是一种引用类型,这就是您可以分配null给布尔“变量”的原因。例子:
Boolean testvar = null;
if (testvar == null) { ...}
Aboolean不能null在 java 中。
Boolean然而,A可以是null。
如果 aboolean没有被赋值(比如一个类的成员),那么它将是false默认值。
唯一可以是nulla 的是非原始的。
Aboolean只能持有TRUE或者FALSE是一个原语。内存中的TRUE/FALSE实际上是数字(0和1)
0 = 假
1 = 真
因此,当您实例化一个对象时,它将为空
String str; // will equal null
另一方面,如果您实例化一个原语,它将被分配为 0 默认值。
boolean isTrue; // will be 0
int i; // will be 0
boolean是原始类型,因此不能为空。
它的装箱类型 ,Boolean可以为空。
该函数可能返回 aBoolean而不是 a boolean,因此将结果分配给Boolean-type 变量将允许您测试是否为空。
在 Java 中,null仅适用于对象引用;因为boolean是原始类型,所以不能赋值null。
很难从您的示例中获取上下文,但我猜如果hideInNav不在返回的对象中getProperties(),您所指示的(默认值?)将是false. 我怀疑这是您看到的错误,因为false不等于null,所以hideNavigation获取空字符串?
通过代码示例的更多上下文,您可能会得到一些更好的答案。
null是分配给引用类型的值。null是一个保留值,表示引用与对象的实例不同。
Aboolean不是 Object 的实例。它是一种原始类型,例如intand float。以同样的方式:int x有一个值0,boolean x有一个值false。
boolean是 Java 中的原始数据类型,原始数据类型不能像其他原始 int、float 等一样为 null,如果未分配,它们应该包含默认值。
在Java中,只有对象可以赋值为null,这意味着对应的对象没有引用,因此在内存中不包含任何表示。
因此,如果您想将 object 作为null使用,则应该使用 Boolean 类,该类将原始布尔类型值包装在其对象中。
这些在 Java 中称为包装类
例如:
Boolean bool = readValue(...); // Read Your Value
if (bool == null) { do This ...}