gpt4 book ai didi

java - 如何避免使用 Optional.get 和 Optional.isPresent

转载 作者:行者123 更新时间:2023-12-04 17:07:24 42 4
gpt4 key购买 nike

public ValueA map(ValueB valueB, Date date) {
Optional<ValueC> valueCOpt = find(valueB);
if (valueCOpt.isPresent()) {
ValueC valueC = valueCOpt.get();
// call many getters on valueC and do a lot of logic with it.
return map(/*some parameters*/);
}
return null;
}

这看起来很丑陋。 optional 优势在这里完全消失了。我读到应该使用 mapflatMap而不是 get .但是,如果我像这样替换每个 setter/getter ,这真的有好处吗?
valueC.getFieldA()


valueCOpt.map(ValueC::getFieldA)

您知道这里的一些常见或最佳实践吗?

最佳答案

您可以使用

public ValueA map(ValueB valueB, Date date) {
return find(valueB)
.map(valueC -> {
// call many getters on valueC and do a lot of logic with it.
return map(/*some parameters*/);
})
.orElse(null);
}

关键是映射函数只求值,如果 optional 项不为空,否则结果保持为空 optional 项。 orElse(null)将返回 null如果 optional 为空。

关于java - 如何避免使用 Optional.get 和 Optional.isPresent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43202596/

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