- 在代码中,开发者需要经常检查引用对象是否为空值(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());
}
}
}
- 在 Groovy 中,可以使用安全导航操作符(?.)来避免上述的操作,具体代码如下:
def foo(str){
// if(null != str){
// str.reverse()
// }
str?.reverse()
}
println foo("aabb")
println foo(null)
打印结果:
bbaa
null
使用 ?. 在空引用上调用其的方法时,结果是返回了一个 null,而没有抛出空指针异常。
网友评论