我对Java还是很陌生,我曾尝试在StackOverflow / Google上四处浏览,但找不到解决问题的答案。
问题:我有一个已设置为句子的名称为“s”的字符串。
然后,我想使用Lambda .forEach循环遍历对象列表,从对象中检索toString()并将其添加到此字符串中。
这是我的代码:
public String toString() {
String s = "In klas " + this.klasCode + " zitten de volgende leerlingen:\n";
deLeerlingen.forEach(leerlingen -> {
s += leerlingen.toString();
});
return s;
}
最佳答案
由于lambda外部变量必须为(effectively) final,因此无法直接使用String
变量。
您可以改用 StringBuilder
:
public String toString() {
StringBuilder b = new StringBuilder();
b.append("In klas ");
b.append(this.klasCode);
b.append(" zitten de volgende leerlingen:\n");
deLeerlingen.forEach(leerlingen -> {
b.append(leerlingen.toString());
});
return b.toString();
}