Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API

Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API

Ich denke, viele Leute verwenden Java-Lambda-Ausdrücke in der Stream-API. Lambda-Ausdrücke können nicht nur für die in Java8 neu hinzugefügten Schnittstellen wie Consumer und Function verwendet werden. Lambda-Ausdrücke können mit funktionaler Schnittstelle verwendet werden. Und die Schnittstelle, in der in Java nur eine Methode definiert ist, ist eine funktionale Schnittstelle.

Konkretes Beispiel

Schauen Sie sich beispielsweise den ResultSetExtractor an, der von Spring's JDBC verwendet wird. Diese Schnittstelle verfügt nur über die folgenden Methoden:

T	extractData(ResultSet rs)

Daher wurde bis zu Java7 der Code wie folgt geschrieben

Entity entity = jdbc.query(sql,new ResultSetExtractor<Entity>() {
 @Override  
     public Entity extractData(ResultSet rs) throws SQLException,  
            DataAccessException {  
      if(!rs.next()){
        return null;
      }else{
        Entity result = new Entity();
        //setValue from resultSet
        return result;
      }
    });  
});


Sie können wie folgt schreiben.


Entity entity = jdbc.query(sql, rs -> {
    if(!rs.next()){
       return null;
    }else{
      Entity result = new Entity();
      //setValue from resultSet
      return result;
    }
  }
});

Es ist sehr erfrischend. Wenn Sie jedoch nicht daran gewöhnt sind, wissen Sie möglicherweise nicht, welche Art von anonymer Klasse Sie machen. Dies kann von der Teamsituation abhängen.

Zusammenfassung

Recommended Posts

Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API
Der Ursprung von Java-Lambda-Ausdrücken
Heutzutage Java Lambda Expressions und Stream API
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
[java8] Um die Stream-API zu verstehen
Über Lambda, Stream, LocalDate von Java8
Verwendung von Java-Lambda-Ausdrücken
Behandeln Sie Ausnahmen kühl mit Java 8-Lambda-Ausdrücken und der Stream-API
Versuchen Sie es mit der Stream-API in Java
Java Stream API
Verwendung der Java-API mit Lambda-Ausdrücken
[Für Anfänger] Über Lambda-Ausdrücke und Stream-API
[Java] Stream API / Map
Verstehen Sie Java 8 Lambda-Ausdrücke
Über Java-Lambda-Ausdrücke
Erläutern Sie Java 8-Lambda-Ausdrücke
[Java Silver] Zusammenfassung der Punkte im Zusammenhang mit Lambda-Ausdrücken
[Für Anfänger] Verstehen Sie schnell die Grundlagen von Java 8 Lambda
[Java] Sortieren Sie die Liste mit Streams und Lambda-Ausdrücken
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Verwenden Sie Lambda-Ebenen mit Java
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
Java Stream API Spickzettel
[Java] Zusammenfassung der regulären Ausdrücke
Java Stream API in 5 Minuten
Java8-Stream, Zusammenfassung des Lambda-Ausdrucks
[Java] Einführung in den Lambda-Ausdruck
[Java] Stream API - Stream-Beendigungsverarbeitung
[Java] Stream API - Stream Zwischenverarbeitung
[Java] Einführung in die Stream-API
[Java] Stream API Zwischenoperation
[Ein Muss für einen Java-Ingenieurlehrling] Verwendung der Stream-API
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Überdenken von Entwurfsmustern mit Java8-Lambda-Ausdrücken und Stream - Builder-Muster -
Java: Das Problem ist schneller, Stream oder Loop
Überdenken des Java8-Lambda-Ausdrucks- und Stream-Entwurfsmusters - Muster der Verantwortungskette -
Java-Lambda-Ausdruck, der mit Comparator gelernt wurde
[Java] Löschen Sie die Elemente von List
[Einführung in Java] Über Lambda-Ausdrücke
[Java Edition] Geschichte der Serialisierung
[Einführung in Java] Informationen zur Stream-API
Untersuchen Sie die Liste der in AWS Lambda + Java verfügbaren Schriftarten
Ich habe den Eingabe- / Ausgabetyp von Java Lambda ~ Map Edition ~ ausprobiert
Betrachten wir die Bedeutung von "Stream" und "Collect" in der Stream-API von Java.
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Ich habe versucht, die Java8 Stream API zu verwenden
Analysieren der COTOHA-API-Syntaxanalyse in Java
Grundlegender Verarbeitungsablauf von Java Stream
Java 8 ~ Stream API ~ startet jetzt
Verwenden Sie Stream in Java?
Nutzen Sie entweder für die individuelle Ausnahmebehandlung in der Java Stream-API
Verstehe die Lambda-Formel ein wenig
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Was war keine faire Verwendung der Java-API-Umleitung unter Android?
So konvertieren Sie ein Array von Strings mit der Stream-API in ein Array von Objekten
[Java] Generieren Sie mithilfe der Stream-API eine verengte Liste aus mehreren Listen