java
中的建议:
if(!var){
}
或
if(var==null){
}
为什么?
Groovy
是一回事吗?
答案 0 :(得分:3)
在java中,如果var
是null
,
if( !var ) {
// var is not null
}
!
不适用于布尔值。
在Groovy中,它将适用于Groovy Truth。
但是,如果您正在测试null
,那么您应该使用显式测试
if( var != null ) {
// var is not null
}
即使在Groovy中,似乎var是Groovy认为false
的任何内容,第一次比较也会通过,即:
assert !0
assert !''
assert ![]
assert !null
当然你也可以使用null safe运算符:
def map = [ person:[ tim:[ login:'tim_yates' ] ] ]
assert map?.person?.tim?.login == 'tim_yates'
assert map?.person?.alice?.login == null
答案 1 :(得分:2)
Java中的第一个仅适用于布尔值
答案 2 :(得分:2)
一元运算符!
执行否定操作。例如,
!false
会产生true
。
==
进行比较操作。
它们彼此完全不同。在java中,只能使用带有boolean
值的否定运算符,而比较运算符可用于比较值。
此外,在Java中,如果var
为Boolean
并且为null
,那么
if(!var){ // would throw a NullPointerException
}