Hallo Leute, ich habe ein List<User>
und ich möchte eine Methode hinzufügen, die einen bestimmten Benutzer zurückgibt, der mit Id gefunden wurde. Ich möchte das mit Lambda-Ausdruck machen, also habe ich das versucht, aber es funktioniert nicht.
Dieser Code kompiliert mich nicht und gibt mir diese Fehler:
%Vor% Hinweis: Wenn Sie möchten, dass nur das erste Element einer Bedingung entspricht, sammeln Sie nicht alle Elemente, die aufgelistet werden sollen (es ist etwas übertrieben), verwenden Sie stattdessen findFirst()
method:
Beachten Sie, dass findFirst()
ein optionales Objekt zurückgibt. und get()
wird eine Ausnahme auslösen, wenn es kein solches Element gibt.
Sie haben zwei Probleme.
Sie müssen Java 1.8 aktivieren. Compliance-Level in Eclipse und importieren die Java8-spezifischen Klassen / Interfaces erfolgreich. Was Sie tun müssen, ist folgendes:
Properties
Java Compiler
in dem Fenster, das geöffnet wurde JDK Compliance
deaktivieren Sie das Kontrollkästchen Use compliance level from execution environment....
und wählen Sie 1.8
aus dem Dropdown-Menü Compliance level
. OK
" und auf "Fertig". Nachdem Sie das getan haben, werden Sie feststellen, dass die return
-Anweisung nicht kompiliert wird. Dies liegt daran, dass das Objekt List
in Java kein Array ist und daher Anweisungen wie user[0]
für Listen ungültig sind. Was Sie tun müssen, ist: