Frage

Ich bin kürzlich von C# nach Java [erneut] gezogen. Aber ich vermisse Lambda -Ausdrücke und Dinge wie iEnumerable. Also suche ich nach einer Lambda Expressionsbibliothek in Java.

Gibt es bessere Bibliotheken als Lambdaj?

Ist auch Clojure in Java -Programmen direkt eingestuft? Kann ich den Clojure -Code in Java -Funktionen mischen?

War es hilfreich?

Lösung

Java 8 Könnte Lambda nativ unterstützen. Bis dahin können Sie eine Kombination aus anonymen inneren Klassen und Bibliotheken wie verwenden Google-Guava. Nachfolgend finden Sie andere Bibliotheken, in die Sie prüfen können

Oder besser ansehen Scala

Andere Tipps

Das Äquivalent foreach -Schleifen in Java ist so strukturiert

List<Foo> fooList = // some list containing foos
for (Foo foo : fooList){
    // do stuff
}

Es gibt keine Lambda -Ausdrücke in Java. Wenn Sie jedoch bis Java8 warten können, fügt sie Schließungen hinzu. Das nächste, was Sie bekommen können, sind Anonyme innere Klassen.

Die Google Guava -Bibliothek enthält Function und Predicate Klassen, mit denen Lambda-ähnliche Funktionen nachgeahmt werden können. Wie Kgrad oben erwähnt, können Sie anonyme Instanzen von jedem erstellen.

http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/function.html
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/predicate.html

Obwohl Sie leicht Klassen wie diese selbst schreiben könnten, enthält Guava viele Helfermethoden, die Funktionen und Prädikate für das Tauchen oder Filtern aller verschiedenen Arten von Iterablen verwenden: http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/iterables.html

Hinweis: Mir ist klar, dass Pangea oben bereits einen Link zu Google Guava gepostet hat, aber ich hatte bereits angefangen, diesen Beitrag zu schreiben, und dachte, es wäre immer noch nützlich, die Links bereitzustellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top