如何模拟具有默认 return 值的 null 安全运算符?
How do you simulate a null safe operator with a default return value?
对不起标题,但我找不到用一句话描述问题的好方法。简而言之,我有很多 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);
对不起标题,但我找不到用一句话描述问题的好方法。简而言之,我有很多 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);