Character parrot = null
int hp = parrot?.hp
if (hp < 0) {
print (parrot+" is pining for the fjords.")
}
基本上,第二行会发生什么? hp
是否设置为null
,即使它是原始的?我们得到例外吗?或者,由于某种原因,它是否设置为0
?
(研究表明(null < 0) == true
,因此该部分没问题。)
另外,如果我们写下来,事情就会改变:
Character parrot = null
if (parrot?.hp < 0) {
print (parrot+" is pining for the fjords.")
}
答案 0 :(得分:1)
你得到:
org.codehaus.groovy.runtime.typehandling.GroovyCastException:
Cannot cast object 'null' with class 'null' to class 'int'.
Try 'java.lang.Integer' instead
是。如你所说,null < 0
所以你得到输出:
null is pining for the fjords