Java中安全解除引用的实用方法

时间:2012-02-02 19:31:40

标签: java

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;
    }
}

1 个答案:

答案 0 :(得分:2)

不完全是你要求的,但作为一名Java程序员花了一些时间在Scala我已经喜欢Google Guava Optional成语的实现。
Elvis and Safe Operator Proposal没有进入Java 7,也许是8。 This stackoverflow topic也可能是一本有趣的读物。