美文网首页
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