Ich habe folgende Klasse:Warum zwingt mich Lambda, ein einzelnes Elementarray anstelle des endgültigen Objekts zu verwenden?
public class Item{
private String name;
//setter getter
}
und Sammlung von Artikeln. Ich möchte den Namen des letzten Artikels in der Sammlung erhalten. Um das zu tun, iteriere ich einfach über die gesamte Sammlung und verwende zuletzt. Das Problem ist, ich weiß nicht, warum es mich zwingt, ein Element String-Array zu verwenden.
Warum muss ich verwenden müssen:
String[] lastName = {""};
items.forEach(item -> lastName[0] = item.getName());
System.out.println(lastname[0]);
statt:
final String lastName;
items.forEach(item -> lastName = item.getName());
System.out.println(lastname);
Eine 'Sammlung' hat keine Reihenfolge, wenn Sie ein bestimmtes Element wünschen, werden Sie wahrscheinlich stattdessen eine'ArrayList' verwenden wollen. – DennisW
'Nachname' ist' final' und Sie können einen Wert nicht mehr als einmal vergeben. Sie können es also nicht in einer Schleife auf der linken Seite verwenden. – nkr
Siehe http://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-class –