【发布时间】:2018-09-30 22:51:59
【问题描述】:
在将老式 if 用法转换为 Optional.ifPresent 时遇到问题。这是以前版本的代码。
State state = State.OK;
final Optional<Person> checkExistingPerson = checkIt();
if(checkExistingPerson.isPresent()) {
Person person = checkExistingPerson.get();
if("blah".equals(person.getName())) {
state = State.DUPLICATE;
} else {
state = State.RESTORED;
}
return Member(person.getId(), state);
}
return Member(null, state);
这是Optional.ifPresent的用法
State state = State.OK;
final Optional<Person> checkExistingPerson = checkIt();
checkExistingPerson.ifPresent(person -> {
if("blah".equals(person.getName())) {
state = State.DUPLICATE;
} else {
state = State.NEW;
}
return Member(person.getId(), state);
});
return Member(null, state);
对于我的问题,使用Optional 的最佳方法是什么?谢谢大家!
【问题讨论】:
标签: java lambda java-8 optional