我遇到了一个问题,我想我需要类似orElseMap(...)/ 的东西orElseFlatMap(...)。我正在从方法调用中使用一个可选项。如果那个 Optional 是空的,我想从另一个方法中检索另一个 Optional 。然后我想返回一个 Optional 描述是否通过两个调用之一找到了一个值。我只是错过了什么吗?所以我想做一些类似的事情:public Optional<Foo> getSomething(){ final Optional<Foo> foo = service.getFooFromBla() if (foo.isPresent()) return foo; else return service.getFooFromBlubb();}我对上述解决方案并不满意,但也许这是目前唯一可行的方法。通常,如果我想打开包装,我会将map(...)/flatMap(...)与orElse(...)/结合使用orElseGet(...),这非常简洁。但我错过了方法orElseMap(...)和orElseFlatMap(...).
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
如果你需要做的,与Java8:既orElse和orElseGet被返回String,你可以用它们放入Optional,像
public Optional<Foo> getSomething()
{
return Optional.ofNullable(service.getFooFromBla().orElse(service.getFooFromBlubb()));
}
添加回答
举报
0/150
提交
取消