我写了一段看起来像这样的代码:
propertySupplier.getSomeProperty().ifPresentOrElse(
property -> //do something with the property,
() -> log.error("property not found")
)
我把它展示给我的主管。他不喜欢它,并告诉我他宁愿有这样的事情:
Property someProperty = propertySupplier.getSomeProperty();
if(property == null) {
log.error("property not found")
} else {
//do something with the property
}
之所以这样,是因为他想尽快知道某个功能将要做什么(尽早失败)。这是可以理解的,但是我不同意引入null
。因此,我想知道是否存在代码样式指南,以便使我可以向他展示这个功能符号,使它更易于阅读?为了澄清我不是要征求意见,我知道这里的说法很皱眉,而仅仅是为了阅读或表明我找不到自己的资源。
CodeReview论坛的内容。
您的版本更好。但是,我认为以下两项都可以满足:
Property property = propertySupplier.getSomeProperty()
.orElseThrow(() -> {
log.error("property not found");
return new NoSuchElementException();
});