java - 从 Java Optional ifPresent() 返回

标签 java java-8 option-type

我知道你不能从 ifPresent() 返回所以这个例子不起作用:

public boolean checkSomethingIfPresent() {
    mightReturnAString().ifPresent((item) -> {
        if (item.equals("something")) {
            // Do some other stuff like use "something" in API calls
            return true; // Does not compile
        }
    });
    return false;
}

mightReturnAString() 可以返回有效字符串或空可选。我所做的工作是:

public boolean checkSomethingIsPresent() {
    Optional<String> result = mightReturnAString();

    if (result.isPresent()) {
        String item = result.get();
        if (item.equals("something") {
            // Do some other stuff like use "something" in API calls
            return true;
        }
    }
    return false;
}

它更长,并且与首先检查空值没有太大区别。我觉得必须有一种使用 Optional 的更简洁的方法。

最佳答案

我想你要找的只是过滤器然后检查是否存在:

return result.filter(a -> a.equals("something")).isPresent();

关于java - 从 Java Optional ifPresent() 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54878076/

相关文章:

java - 对与 Java 中的字符串数组相关的 int 数组进行排序

java - 访问第一级目录并获取每个目录的大小 Java

java - 如何将 Instant 转换为 LocalTime?

java - Android Studio 在使用 orElseThrow 方法时需要捕获 Throwable

swift - Swift 中的可选绑定(bind)语法

java - 如何通过上下文对象获取资源元素

java - Endeca 导航引擎无法处理请求

java - 字符串拆分为两个列表

java - 使用 checkStyle 强制执行 java 8 约定

java - 将 isPresent() 和方法调用更改为 ifPresent()