Java8链式调用Map结合Optional如何获取Set并为空时返回null
解决方案
你可以在现有Optional链式调用的末尾追加orElse(null)方法,即可得到Set<String>类型的返回值,且满足中间任何一步为空时最终返回null的要求,完整代码如下:
Set<String> result = Optional.ofNullable(method1()) .map(param -> param.get("A")) .map(subMap -> subMap.get("B")) .orElse(null);
实现逻辑说明
- 当
method1()返回null、第一层get("A")返回null、第二层get("B")返回null三种情况任意一种发生时,整个链式调用都会得到Optional.empty对象 orElse(null)的作用是:如果当前Optional为Optional.empty,就返回传入的默认值null,否则返回Optional中持有的Set<String>对象
内容的提问来源于stack exchange,提问作者tt0686
相关产品推荐
相关产品推荐

