Java 爪哇<;可选>;对象为null或对象';s属性为空?
我想将这个遗留Java示例代码迁移到Java8Java 爪哇<;可选>;对象为null或对象';s属性为空?,java,optional,Java,Optional,我想将这个遗留Java示例代码迁移到Java8 public String getUserSex(Person person) { if(person != null) { if(person.getSex() != null) { return person.getSex(); } } return null; } 如何使用可选将其迁移到Java 8?您可以按如下方式实现它: public Optional
public String getUserSex(Person person) {
if(person != null) {
if(person.getSex() != null) {
return person.getSex();
}
}
return null;
}
如何使用
可选将其迁移到Java 8?您可以按如下方式实现它:
public Optional<String> getUserSex(Person person) {
if(person != null) {
return Optional.ofNullable(person.getSex());
}
return Option.empty();
}
使用及
public可选getUserSex(个人)
{
返回可选的.ofNullable(person).flatMap(
p->Optional.ofNullable(p.getSex())
);
}
您的问题到底是什么?您应该使用Optional.ofNullable(),因为getSex方法可以返回null,如给定代码所示。
getUserSex(new Person()).isPresent()
public Optional<String> getUserSex(Person person)
{
return Optional.ofNullable(person).flatMap(
p -> Optional.ofNullable(p.getSex())
);
}