gpt4 book ai didi

java - 需要有关 Java 1.8 的帮助 可选 map

转载 作者:行者123 更新时间:2023-11-30 03:13:44 26 4
gpt4 key购买 nike

我想检查字符串对象,如果存在则返回一个对象,否则返回另一个对象。

当条件执行时,它不会返回并继续执行 else。

return Optional.of(where.getObject()).filter(f -> f.isPresent()).map(str -> {
System.out.println("Value here is str" + str.get());
return getPredicateByOption(joinMap.get(str.get()), where, builder, null);
}).orElse(getPredicateByOption(null, where, builder, root));

我正在尝试替换以下 if条件:

if (!Optional.empty().equals(where.getObject())) 
return getPredicateByOption(null, where, builder, root);
return getPredicateByOption(joinMap.get(where.getObject().get()), where, builder, null);

where.getObject()的返回类型是 Optional<String> .

最佳答案

if条件可以通过以下方式替换:

return getPredicateByOption(where.getObject().map(joinMap::get).orElse(null), 
where, builder,
where.getObject().isPresent() ? null : root);

我假设where.getObject()返回 Optional<String>其中包含 joinMap 中的 key map 。请注意,即使 where.getObject返回非空可选,但 joinMap 中不存在相应的字符串,您仍然会得到正确的结果(传递给 getPredicateByOption 的第一个参数将为 null。

关于java - 需要有关 Java 1.8 的帮助 可选 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116815/

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