如何检查布尔值是否为空?所以如果我知道“hideInNav”为空。如何停止 它进一步执行?像下面的东西似乎不工作,但为什么?Java检查布尔值是否为空
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
如何检查布尔值是否为空?所以如果我知道“hideInNav”为空。如何停止 它进一步执行?像下面的东西似乎不工作,但为什么?Java检查布尔值是否为空
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean
只能是true
或false
,因为它是一个primitive datatype(+一boolean
变量的默认值是false
)。如果您想使用null
值,则可以使用类Boolean
。布尔值是一个引用类型,这就是您可以将null
分配给布尔“变量”的原因。例如:
Boolean testvar = null;
if (testvar == null) { ...}
甲boolean
不能在Java null
。
A Boolean
,但是,可以是null
。
如果一个boolean
没有赋值(比如说一个类的成员),那么默认情况下它将是false
。
null
是分配给参考类型的值。 null
是保留值,表示引用不像对象的实例。
A boolean
不是对象的实例。它是一种原始类型,如int
和float
。以相同的方式:int x
的值为0
,boolean x
的值为false
。
同意。不是拼写错误的最佳时机!快速编辑:) – christopher 2013-04-11 09:29:52
boolean
是原始类型,因此不能为空。
其盒装类型Boolean
可以为空。
函数可能会返回Boolean
而不是boolean
,因此将结果分配给Boolean
类型的变量将允许您测试无效性。
在Java中,null
仅适用于对象引用;由于boolean
是原始类型,因此不能分配null
。
很难从你的例子获取上下文,但我猜,如果hideInNav
不是由getProperties()
,返回的对象(默认值?)你已经表示将false
。我怀疑这是你看到的错误,因为false
不等于null
,所以hideNavigation
得到空字符串?
对于代码示例,您可能会得到一些更好的答案。
唯一可以是null
的东西是非原始的。
A boolean
哪些只能容纳TRUE
或FALSE
是原始的。在存储器中的TRUE
/FALSE
实际上是数字(0
和1
)
0 = FALSE
1 = TRUE
因此,当你实例化对象将是空 String str; // will equal null
另一方面,如果你立即一个原语它将被分配到0默认。
boolean isTrue; // will be 0
int i; // will be 0
“布尔”中的布尔值的大写字母“......”是不幸的。 'boolean'类型的变量只能保存'true'和'false',但是一个'Boolean'类型的变量保存一个'Boolean'对象或'null'。 – 2013-06-24 17:09:59
其实原始数据类型的默认值是空的局部变量。
对不起,但这是不正确的。原始数据类型始终具有非空值。 – Eich 2015-08-10 10:27:31
默认值是'false',不管它是否是本地的,都与任何事情无关。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – 2017-03-11 14:35:49
感谢@Eich但如果我想使用空值,您将如何使用类“布尔”?你有任何代码示例?对不起,超新的这个。 – 2013-04-10 22:39:46
在这个具体的例子中,布尔hideInNav = parent.get ..... – p91paul 2013-04-10 22:42:26
没问题Delmon,每个人都是初学者:)。 p91paul为您提供了正确的代码,以便您可以检查空值:)。我还添加了一个例子。 – Eich 2013-04-10 22:45:02