美文网首页
2.2 安全导航操作符

2.2 安全导航操作符

作者: 冯可乐同学 | 来源:发表于2022-06-20 14:13 被阅读0次
  1. 在代码中,开发者需要经常检查引用对象是否为空值(null),否则在对象为空值时调用它的方法时会导致异常或崩溃。因此在代码中会经常出现如下形式的代码
if (对象 == null){ ... }

这种操作单调乏味,在 Java 中也不可避免。举个栗子:

public class SafeNullJava {

    public static void main(String[] args) {
        SafeNullJava s = new SafeNullJava();
        s.foo("abc");
        s.foo(null);
    }

    private void foo(String str) {
        if (null != str) {
            System.out.println(str.toUpperCase());
        }
    }
}
  1. 在 Groovy 中,可以使用安全导航操作符(?.)来避免上述的操作,具体代码如下:
def foo(str){
//    if(null != str){
//        str.reverse()
//    }
    str?.reverse()
}

println foo("aabb")
println foo(null)

打印结果:

bbaa
null

使用 ?. 在空引用上调用其的方法时,结果是返回了一个 null,而没有抛出空指针异常。

相关文章

网友评论

      本文标题:2.2 安全导航操作符

      本文链接:https://www.haomeiwen.com/subject/njwgdrtx.html