Lambada Ausdrücke - wie funktionieren und benutzt man sie?

Moro

Mitglied
Guten Tag alle zusammen,

ich möchte mich demnächst mit JavaFX8 beschäftigen (erstes etwas größeres Eigenprojekt mit GUI). Mal beim drüber schauen ist mir aufgefallen, dass dort bereits die neuen Lambada Ausdrücke benutzt werden die jetzt mit Java8 eingeführt wurden. Ich habe bereits nach ein paar Beispielen im Netz gesucht, wie diese Ausdrücke funktionieren, aber generell habe ich zwei Probleme.

Ich finde nichts ausführbares um mir die Funktionsweise einmal praktisch anschaulich zu machen. Beispielweise habe ich mir das Buch "Java8 Die Neuerungen" von Michael Inden angeschaut und dort ist zur Erklärung soetwas angegeben

Java:
(int x, int y) -> { return x + y; }
(long x) -> { return x * 2; }
() -> { String msg = "Lambda"; System.out.println("Hello " + msg); }

Die Frage die sich mir allerdings stellt, wie kann ich das nun benutzen? Jedenfalls, wenn ich das so einfach in den Quellcode kopiere, wird mir das direkt rot unterstrichen.

Das ist bis jetzt das anschaulichste, was ich zu Lambadas gefunden habe. So das ich zumindest eine Vorstellung davon bekomme, was sie tun. Viele - so gut wie alle - Erklärungen sind eher so aufgesetzt, dass sie Fallbeispiele aus der Praxis zeigen, und dann beschreiben wie man es nun mit Hilfe von Lambadas besser machen kann. Das Problem ist aber: Ich bin noch Student und mir fehlt diese Praxis Erfahrung, damit mir diese Erklärungen einleuchten. Auf der anderen Seite hatte ich aber schon sehr viel im Studium mit Java SE und EE zu tun gehabt und ich kenne sehr viele Fortgeschrittene Themen. Bin also in einer Zwickmühle. Ich bin mir sicher, dass ich die Lambads begreifen kann, wenn ich einmal ein richtiges ausführbares Praxisbeispiel hätte, dass mir die Kernfunktionalität von Lambads veranschaulicht. Mir würde es schon helfen, wenn ich das "Codebeispiel" oben benutzen und ausführen könnte. Aber wie?

Jemand eine Idee, Tipps, ggf. Hilfe? Eventuell kennt jemand eine bessere Quelle um Lambads "from the scratch" zu erlernen?

Viele Grüße

Moro
 
Zuletzt bearbeitet:

Moro

Mitglied
Okey jetzt hab ich was hinbekommen. Kann jemand trotzdem umschreiben, wofür man die genau braucht in JavaFX8 ? Ich kann mir das noch nicht so richtig vorstellen.
 

rmacher

Mitglied
Okey jetzt hab ich was hinbekommen. Kann jemand trotzdem umschreiben, wofür man die genau braucht in JavaFX8 ? Ich kann mir das noch nicht so richtig vorstellen.

Buch von M. Inden, Seite 21 (2.4. Fazit):

"In diesem Kapitel haben wir gelernt, dass Lambdas überall dort eingesetzt werden können, wo vor JDK 8 eine anonyme innere Klasse zur Implementierung eines SAM-Typs benötigt würde.".

Vorteile:
- Weniger Code und somit weniger Fehler
- Code besser lesbar
- Einfacherer Zugriff auf die Umgebung aus dem Lambda-Ausdruck (this-Problematik bei inneren anonymen Klasse ...)

Wo man es konkret anwenden kann?
- Ereignisbehandlung, bei der ein SAM-Type zum Einsatz kommt und die Implementierung nicht all zu viel Code enthält.
- Implementierung von Comparator / Runnable etc.
- ...

Das Buch von M. Inden sollte an sich genug informativ sein.
 
Zuletzt bearbeitet:

arilou

Bekanntes Mitglied
Übrigens... Es sind Lambda-Ausdrücke, nach dem griechischen Buchstaben Λ (klein: λ),
das hat nichts mit Lambada-Tanzen zu tun.
(Auch wenn ich diese Verbindung nach deinem Beitrag hier wohl nie wieder aus dem Kopf bekommen werde...:rolleyes:)
 

mac21

Aktives Mitglied
Entschuldigung für den SPAM, aber das war genau das, weshalb ich mich auch gerade weggeworfen habe... :D
In Java9 kommen dann noch die sirtaki-schleifen und walzer-Anweisungen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
A Lambda-Ausdrücke Allgemeine Java-Themen 5
E Reguläre Ausdrücke: String-Ersetzung Allgemeine Java-Themen 0
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
G Reguläre Ausdrücke Allgemeine Java-Themen 11
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
G Reguläre Ausdrücke Allgemeine Java-Themen 2
S Reguläre Ausdrücke: Polynomterme Allgemeine Java-Themen 14
jstei001 Reguläre Ausdrücke bearbeiten/ändern Allgemeine Java-Themen 14
R Logische Ausdrücke in Java Allgemeine Java-Themen 4
C reguläre Ausdrücke finden nicht was sie finden sollen Allgemeine Java-Themen 8
Loyd Noch ne Regex-Frage: Verschachtelte Ausdrücke Allgemeine Java-Themen 4
H Geklammerte Ausdrücke nach Divide&Conquer Allgemeine Java-Themen 2
F Reguläre Ausdrücke und BBCode Allgemeine Java-Themen 10
J String für reguläre Ausdrücke escapen Allgemeine Java-Themen 2
C Reguläre Ausdrücke - X{0}?.* Allgemeine Java-Themen 8
B Parser für logische Ausdrücke Allgemeine Java-Themen 9
C Reguläre Ausdrücke, String rückwärts durchsuchen Allgemeine Java-Themen 6
J Expression Language für mathematische Ausdrücke Allgemeine Java-Themen 8
B Regeuläre Ausdrücke Allgemeine Java-Themen 8
I Reguläre Ausdrücke und das "~" Symbol Allgemeine Java-Themen 2
G arithmetische ausdrücke Allgemeine Java-Themen 5
B Reguläre ausdrücke mit variablen? Allgemeine Java-Themen 12
H Regex - Reguläre Ausdrücke Allgemeine Java-Themen 3
A Reguläre Ausdrücke vereinfachen Allgemeine Java-Themen 19
J Reguläre Ausdrücke Allgemeine Java-Themen 14
A Zufallswerte für reguläre Ausdrücke Allgemeine Java-Themen 15
G Reguläre Ausdrücke Allgemeine Java-Themen 8
R reguläre Ausdrücke Allgemeine Java-Themen 2
L Reguläre Ausdrücke und Fehlerbehandlung Allgemeine Java-Themen 10
RaoulDuke Reguläre Ausdrücke - Daten extrahieren Allgemeine Java-Themen 3
L reguläre Ausdrücke? Allgemeine Java-Themen 2
R Reguläre Ausdrücke (mehrzeilig) Allgemeine Java-Themen 2
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
M Wie funktionieren parallele Java Streams? Allgemeine Java-Themen 1
V Threads Weshalb funktionieren meine Threads nicht? Allgemeine Java-Themen 2
E grundkurs-java.de: Applets funktionieren nur teilweise Allgemeine Java-Themen 3
BattleMaster246 Arrays funktionieren nicht Allgemeine Java-Themen 6
S Override will nicht funktionieren :/ Allgemeine Java-Themen 2
C setter funktionieren nicht Allgemeine Java-Themen 10
M Seit Neuinstallation von Windows funktionieren Applets nicht Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben