java – 如何使用默认返回值模拟null安全操作符?

我很抱歉这个头衔,但我找不到用一句话描述问题的好方法.简而言之,我有很多遵循这种模式的 Java代码
if (obj != null && obj.getPropertyX() != null) {
    return obj.getPropertyX();
}
return defaultProperty;

可以改写为

return obj != null && obj.getPropertyX() != null ? obj.getPropertyX() : defaultProperty;

它仍然很难看,我想知道Google Guava或其他库中是否有一些API来帮助清理这些代码.具体来说,我正在寻找类似的东西

return someAPI(obj,"getPropertyX",defaultProperty);

我可以使用反射来实现这个方法,但我不确定这是否是正确的方法.谢谢.

解决方法

在Java 8中,您可以使用:
return Optional.ofNullable(obj).map(Obj::getPropertyX).orElse(defaultProperty);

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...