作者:good7758 | 来源:互联网 | 2023-05-18 17:14
1> tobias_k..:
你不能创建lastName
一个String
,因为在lambda(或匿名内部类)中使用的局部变量必须(有效地)final
(见这里),即你不能在.forEach
循环中每次执行lambda时覆盖它.使用数组(或其他一些包装器对象)时,不要为该变量赋值,而只是更改它的某些方面,因此它可以是最终的.
或者,您可以使用reduce
跳到最后一项:
String lastName = items.stream().reduce((a, b) -> b).get().getName();
或者,如评论中skip
所述,首先是n-1个元素,然后是第一个:
String last = items.stream().skip(items.size() - 1).findFirst().get().getName();