gpt4 book ai didi

java - 从 Java Optional 中有条件地提取值

转载 作者:行者123 更新时间:2023-11-29 06:27:37 26 4
gpt4 key购买 nike

我正在尝试找到使用 Java 的最简洁(和最有意义)的方式 Optional , 读取 Optional<String> 的第一个值并返回字符串(如果存在),或者返回“NOT_FOUND”。这是我正在使用的代码:

public static String getValue(Optional<String> input) {
return input.ifPresent(val -> val.get()).orElse("NOT_FOUND")
}

Optional 的方法显然有非常具体的用途,但 API 让我感到困惑。

更新(2018 年 4 月 13 日):我问题中的代码不正确,因为如果我认为 val作为 Optional 中的值,然后是 val.get()没有任何意义。感谢您指出这一点,@rgettman。

此外,我在已接受答案的评论中为我的问题添加了另一部分,即我需要一种方法来在返回之前操作 String 值(如果存在)。 orElse("NOT_FOUND")如果 Optional 不包含值,则仍然适用。那么 Optional 的可接受用途是什么? API实现如下?

public static String getValue(Optional<String> input) {
return input.isPresent() ? input.get().substring(0,7).toUpperCase() : "NOT_FOUND";
}

@Aominè 的回答和后续评论解决了这个问题的两个部分。

最佳答案

您所要做的就是将返回声明更改为:

return input.orElse("NOT_FOUND");

如果存在,这将返回 Optional 中的对象,否则返回“NOT_FOUND”。

也就是说,我会避免使用 Optional 作为参数。见here .

关于java - 从 Java Optional 中有条件地提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807204/

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