Cus*_*Bun 5 java optional java-8
我们使用构建器模式为服务创建一些输入,它看起来像这样(简化):
final SomeInput input = SomeInput.builder()
.withSomeId(....)
.withSomeState(....)
...
.build();
Run Code Online (Sandbox Code Playgroud)
我们想在SomeInput中设置一些属性,但仅限于它存在.所以在创建对象后,我做了这样的事情:
Optional<String> secondaryId = infoProvider.getSecondaryId();
if (secondaryId.isPresent()) {
input.setSecondaryId(secondaryId.get());
}
Run Code Online (Sandbox Code Playgroud)
我在想:
a)有更好/更清洁的方法吗?b)如果我确实需要这样做,我可以避免使用"if"语句并使用Optional的某些功能吗?
(注意:我无法更改构建器本身,我不能认为secondaryId是String,但我们从infoProvider检索的是可选的)
使用会更清洁一点 ifPresent
secondaryId.ifPresent(input::setSecondaryId);
Run Code Online (Sandbox Code Playgroud)
但这几乎是你能满足这些要求的最佳方法.
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |