Optional与Optional.empty()等效的含义是什么?或者,写这个更好的方法

时间:2018-11-01 18:43:42

标签: java java-8 optional

我发现自己在写这篇文章:

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));

1 个答案:

答案 0 :(得分:2)

哦!我没有意识到map还会返回一个正在映射的类型的Optional。所以一直都是...

Optional<String> s = fooMaybe.map(Foo::getName);

对于让其他新手绊脚的我,我将保留此问题。