gpt4 book ai didi

java - 使用 Java 8 Optional 实现安全的 Map 遍历

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:25 25 4
gpt4 key购买 nike

我有 Map<String, Map<String, String>> myMap在我的 Java 8 类(class)中。我需要导航到像 myMap['keyA']['keyB'] 这样的叶字符串, 返回 null如果'keyA''keyB'在相关 map 中不存在。

在 groovy 中我会使用 myMap?.keyA?.keyB并完成它。我了解 Java 8 的 Optional<T>将类似的行为带入 java。有没有办法使用这种新行为来简洁地模仿 groovy 功能​​?如果不是,是否有另一种简洁的方法可以在 Java 8 中实现这种行为,或者我是否仍然坚持使用复杂的过程代码?

最佳答案

String valueOrNull = Optional.ofNullable(myMap.get("keyA"))
.map(x -> x.get("keyB"))
.orElse(null);

首先,它将第一次查找的结果包装在 Optional 中, 它充当一个 monad。如果添加第三层 (myMap.?keyA.?keyB.?keyC),它将如下所示:

String valueOrNull = Optional.ofNullable(myMap.get("keyA"))
.map(x -> x.get("keyB"))
.map(x -> x.get("keyC"))
.orElse(null);

关于java - 使用 Java 8 Optional 实现安全的 Map 遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com