【发布时间】:2019-02-06 14:18:04
【问题描述】:
我是 lambda 表达式的新手。我有以下代码:
List<String> someNumbers = Arrays.asList("N40", "N36", "B12", "B6", "G53", "G49", "G60", "G50", "G53", "I26", "I17", "I29", "O71");
someNumbers
.stream()
.filter(startsWith("G"))
在上面的代码中,“过滤器”应该作为一个谓词并返回一个布尔值。但是为什么它显示编译错误?当我使用以下行时,我没有收到错误:
.filter(s->s.startsWith("G"))
上面,流被传递给过滤器。那么参数 s 的需要是什么?例如,'.map' 处理它时不会出现任何错误
.map(String::toUppercase).
【问题讨论】:
-
请仔细查看Java Tutorial, Lambda Expressions Section。在每种编程语言中,您都必须遵守语法规则。
标签: lambda java-8 java-stream functional-interface