安全导航操作员,它的工作?

时间:2018-04-04 13:56:16

标签: grails groovy

def Abc(){
    return this.abc?.equals(bcd.toString()) 
}

另外,尝试将其转换为Java。

abc是一个字符串。 我明白'?'运算符会进行空检查而'abc'它不是null它会继续执行equals部分并在它的基础上返回true或false,但如果它找到null呢?

1 个答案:

答案 0 :(得分:0)

将其视为以下内容的简写:

return this.abc == null ? null : this.abc.equals(bdc.toString())

根据Groovy语言文档

  

安全导航运算符用于避免NullPointerException。通常,当您具有对象的引用时,可能需要在访问对象的方法或属性之前验证它不是null。为避免这种情况,安全导航操作员只需返回null而不是抛出异常

因此它将返回null而不是false