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;
}
}
最佳答案
不完全是您所要求的,但作为一名 Java 程序员,花了一些时间在 Scala 中编码我可以推荐 Google Guava's实现Optional .
Elvis and Safe Operator Proposal没能进入 Java 7,也许是 8。
This question读起来可能很有趣。
2023 年更新:Java 中仍然没有 Elvis 运算符,但 Optional
自 Java 8 以来一直是标准库的一部分。
关于java - Java 中安全取消引用的实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118698/