【发布时间】:2019-01-29 10:28:25
【问题描述】:
最近,我开始在我们的项目中处理json响应时使用Optional:
Optional.ofNullable(root.get("a"))
.map(a -> a.get("b"))
.map(b -> b.get("c"))
.map(c -> c.get("d"))
对于每个 get(),我必须使用 map() 将返回值保存在“安全箱”中,这使得代码非常冗长。要访问一个复杂的长 json 树中非常深的 json 字段,最终会得到一个相当长的 map() 链。
我梦想着这样的事情:
Optional.ofNullable(root.get("a")).map(a.get("b").get("c").get("d"))
如果这些 get() 方法中的任何一个返回 null 值,我将得到一个空的 Optional 作为表达式的结果。比方说,使用一个“安全盒”,所有可能的 null 值都可以通过某种方式处理并变成空的 Optional。这是一个愚蠢的想法吗?
有没有办法让代码不那么冗长?
【问题讨论】:
-
你可以在
map里面使用&&。