Wählen Sie Objekt aus der Liste des Objekts mit Lambda-Ausdruck

8

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.

%Vor%

Dieser Code kompiliert mich nicht und gibt mir diese Fehler:

%Vor%
  • Ich benutze eclipse 4.4.3 Kepler und ich habe java 8 in der Maschine installiert und das Plugin für die Arbeit mit java8 in eclipse
Tinwor 17.07.2014, 09:25
quelle

2 Antworten

19

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:

%Vor%

Beachten Sie, dass findFirst() ein optionales Objekt zurückgibt. und get() wird eine Ausnahme auslösen, wenn es kein solches Element gibt.

    
kajacx 17.07.2014, 09:57
quelle
4

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:

    1. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Properties
    2. Wählen Sie Java Compiler in dem Fenster, das geöffnet wurde
    3. Unter 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 .
    4. Klicken Sie auf " 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:

%Vor%     
Konstantin Yovkov 17.07.2014 09:33
quelle

Tags und Links