Cso*_*agy 4 java lambda java-8 java-stream
让我们假设有一个Fox类,它有名字,颜色和年龄.让我们假设我有一个狐狸列表,我想打印出那些颜色为绿色的狐狸名字.我想用流来做这件事.
领域:
我编写了以下代码来进行过滤和Sysout:
foxes.stream().filter(fox -> fox.getColor().equals("green"))
.forEach(fox -> System.out::println (fox.getName()));
Run Code Online (Sandbox Code Playgroud)
但是,我的代码中存在一些语法问题.
问题是什么?我该如何解决?
你不能将方法引用与lambdas结合起来,只需使用一个:
foxes.stream()
.filter(fox -> fox.getColor().equals("green"))
.forEach(fox -> System.out.println(fox.getName()));
Run Code Online (Sandbox Code Playgroud)
或者其他:
foxes.stream()
.filter(fox -> fox.getColor().equals("green"))
.map(Fox::getName) // required in order to use method reference in the following terminal operation
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
只需使用:
foxes.stream().filter(fox -> fox.getColor().equals("green"))
.forEach(fox -> System.out.println(fox.getName()));
Run Code Online (Sandbox Code Playgroud)
原因是因为您不能一起使用方法引用和lambda表达式.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |