Groovy允许我说
x?.getY()
而不是详细
x==null ? null : x.getY().
Java不允许自定义运算符,但我可以想象一个像这样使用的实用程序方法:
safe(x).getY();
世界上的Maven回购中是否有任何标准库可以做这种事情?如果不是,我想将它包含在一个开源库(如apache.commons.lang)中,它最适合哪里?
编辑:safe()
的示例实现:
public static <T> T safe(T x) {
if (x==null) {
return new NullReturningMock<T>();
} else {
return x;
}
}
答案 0 :(得分:2)
不完全是你要求的,但作为一名Java程序员花了一些时间在Scala我已经喜欢Google Guava Optional成语的实现。
Elvis and Safe Operator Proposal没有进入Java 7,也许是8。
This stackoverflow topic也可能是一本有趣的读物。