gpt4 book ai didi

java - option.filter 的 Lambda 表达式编码变体

转载 作者:行者123 更新时间:2023-12-02 10:58:00 24 4
gpt4 key购买 nike

我正在尝试使用 lambda 表达式,是否有其他方法可以编写过滤器( optional.filter(s -> (s.length() > 4)) )

这是完整的工作代码:

public class Main {
public static void main(String[] args) {

Optional<String> optional = Optional.of("Hello");

System.out.println(optional.filter(s -> (s.length() > 4)).get());
}
}

例如,下面是一种错误的方法,尽管它会抛出编译提示“无法解析方法长度”,但这里试图解释我正在考虑的一种变化。

optional.filter(length() > 4)

最佳答案

您试图引入 Java 中不允许的语法。

这些是有效的语法:

optional.filter(s -> s.length() > 4)

或者:

optional.filter(s -> {
return s.length() > 4;
})

或者:

optional.filter(new Predicate<String>() {
@Override
public boolean test(String s) {
return s.length() > 4
}
})

在这种特定情况下,您应该更喜欢第一个,因为它更紧凑且更具可读性。

关于java - option.filter 的 Lambda 表达式编码变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51571419/

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