我发现自己在写这篇文章:
Optional<String> s = fooMaybe.map(Foo::getName).orElse(Optional.empty());
当然,对于匹配返回类型的可编译方式是:
Optional<String> s = fooMaybe.map(foo -> Optional.of(foo.getName)).orElse(Optional.empty());
但是还有没有更简洁的方法? 例如 Optional.of(null)
返回Optional.empty()
吗?
Optional<String> s = Optional.of(fooMaybe.map(Foo::getName).orElse(null));
答案 0 :(得分:2)
哦!我没有意识到map
还会返回一个正在映射的类型的Optional
。所以一直都是...
Optional<String> s = fooMaybe.map(Foo::getName);
对于让其他新手绊脚的我,我将保留此问题。