我想将这个遗留的Java示例代码迁移到Java 8。
public String getUserSex(Person person) {
if(person != null) {
if(person.getSex() != null) {
return person.getSex();
}
}
return null;
}
如何使用Optional
将其迁移到Java 8?
答案 0 :(得分:4)
使用Optional.ofNullable
和Optional.flatMap
public Optional<String> getUserSex(Person person)
{
return Optional.ofNullable(person).flatMap(
p -> Optional.ofNullable(p.getSex())
);
}
答案 1 :(得分:0)
您可以按如下方式实施:
public Optional<String> getUserSex(Person person) {
if(person != null) {
return Optional.ofNullable(person.getSex());
}
return Option.empty();
}
在这种情况下,getUserSex
的调用者将始终获得一个类型Optional
,因此调用者不得实现空检查。
相反,如果值存在,调用者可以询问Optional。
getUserSex(new Person()).isPresent()