Optional.ifPresentOrElse 是否有任何编码风格指南?
Is there any coding style guideline for Optional.ifPresentOrElse?
我写了一段代码,看起来像这样:
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();
});
我写了一段代码,看起来像这样:
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();
});