Groovy:如果安全导航操作符在原始赋值上返回null,会发生什么?

时间:2014-01-28 06:31:19

标签: groovy null int variable-assignment primitive

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.")
}

1 个答案:

答案 0 :(得分:1)

  1. 你得到:

    org.codehaus.groovy.runtime.typehandling.GroovyCastException:
         Cannot cast object 'null' with class 'null' to class 'int'.
         Try 'java.lang.Integer' instead
    
  2. 是。如你所说,null < 0所以你得到输出:

    null is pining for the fjords