Tin*_*wor 11 java eclipse lambda java-8
大家好我有一个List<User>,我想添加一个方法,返回使用Id找到的特定用户.我想使用lambda表达式,所以我尝试了这个,但它不起作用.
...
List<User> user = users.stream().filter(x -> x.id == id).collect(Collectors.toList());
return user[0];
Run Code Online (Sandbox Code Playgroud)
这段代码不编译并给我这些错误:
The method stream() is undefined for the type List<User>
Lambda expressions are allowed only at source level 1.8 or above *
Collectors cannot be resolved
Run Code Online (Sandbox Code Playgroud)
kaj*_*acx 22
建议:如果你只想要第一个元素匹配条件,不要收集列表中的所有元素(这有点矫枉过正),改用findFirst()方法:
return users.stream().filter(x -> x.id == id).findFirst().get();
Run Code Online (Sandbox Code Playgroud)
请注意,findFirst()将返回一个Optional对象,get()如果没有这样的元素,将抛出异常.
| 归档时间: |
|
| 查看次数: |
15920 次 |
| 最近记录: |