你如何检查一个布尔值是否为空?因此,如果我知道“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
默认值。
唯一可以是null
a 的是非原始的。
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 的实例。它是一种原始类型,例如int
and 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 ...}