【发布时间】:2015-05-11 18:20:56
【问题描述】:
我有以下课程:
public class Item{
private String name;
//setter getter
}
和项目的集合。我想获取集合中最后一个项目的名称。为此,我只需遍历所有集合并最后使用。问题是我不知道为什么它强迫我使用一个元素字符串数组。
为什么一定要使用:
String[] lastName = {""};
items.forEach(item -> lastName[0] = item.getName());
System.out.println(lastname[0]);
代替:
final String lastName;
items.forEach(item -> lastName = item.getName());
System.out.println(lastname);
【问题讨论】:
-
Collection没有顺序,如果你想要一个特定的元素,你可能想要使用ArrayList来代替。 -
lastnameisfinal并且您不能多次分配一个值。所以你不能在左侧循环使用它。 -
@Alexis C.:请使用cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html,这些版本之间有将近两年的发展。
-
你确定“lambda 强制你使用单元素数组”吗?我从来没有经历过 lambdas 对我这样做……