Java中安全解引用的实用方法
Groovy允许我说
x?.getY()
而不是冗长的
x==null ? null : x.getY().
Java不允许自定义运算符,但我可以想象这样使用的实用程序方法:
safe(x).getY();
世界上有没有标准的Maven repos库可以做这种事情?如果没有,我想把它包含在一个开源库中(比如apache.commons.lang),它最适合在哪里
编辑:safe()
的示例实现:
public static <T> T safe(T x) {
if (x==null) {
return new NullReturningMock<T>();
} else {
return x;
}
}
# 1 楼答案
这不完全是你想要的,但是作为一个花了一些时间在Scala上的Java程序员,我喜欢Optional习惯用法的Google Guava实现
Elvis and Safe Operator Proposal没有进入Java7,可能是8。 This stackoverflow topic可能也是一本有趣的读物