我很抱歉这个头衔,但我找不到用一句话描述问题的好方法.简而言之,我有很多遵循这种模式的
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);