uebungen/Assignment_078/readme.md

31 lines
1.8 KiB
Markdown
Raw Normal View History

2024-01-20 16:52:10 +01:00
# Callback mit Lambda realisieren
2023-05-23 09:08:43 +02:00
2024-01-08 15:32:04 +01:00
[Musterlösung](solution/)
2023-05-23 09:08:43 +02:00
## Lernziel
2024-01-20 16:52:10 +01:00
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als Lambda realisiert.
2023-05-23 09:08:43 +02:00
## Aufgabe
2024-01-20 16:52:10 +01:00
Gehen Sie in das Paket [pr2.lambda.lambdas](../sources/src/main/java/pr2/lambda/lambdas/).
2023-05-23 09:08:43 +02:00
2024-01-20 16:52:10 +01:00
In dieser Aufgabe wird ein sehr gängiges Muster benutzt, dass auch bei großen Suchmaschinen zum Einsatz kommt. Über eine Filter-Funktion werden aus einer Menge von Daten diejenigen ausgewählt, die gewünscht sind. Die Auswahlfunktion wird von außen vorgegeben, sodass beliebige Filteroperationen möglich sind, auch solche, die beim Schreiben des Rahmenwerkes noch nicht bekannt waren.
2023-05-23 09:08:43 +02:00
2024-01-20 16:52:10 +01:00
Sehen Sie sich das Interface `Predicate` und die Klasse `NumberSelector` an und versuchen Sie die Funktionsweise der beiden zu verstehen. Betrachten Sie nun die Klasse `Main`, die versucht zuerst die geraden und dann die ungeraden Zahlen auszuwählen und auszugeben. Der hierfür nötige Code ist zwar schon weitgehend vorhanden, aber in der `main`-Methode müssen Sie noch zwei passende Filterfunktionen als **Lambda** realisieren.
Nachdem Sie die beiden Filter geschrieben haben, lassen Sie das Programm laufen und überprüfen Sie, ob wirklich die richtigen Zahlen ausgewählt werden.
Vergleichen Sie die Lösung mit Lambdas mit der aus der vorhergehenden Aufgabe, die auf anonymen inneren Klassen basiert hat.
2023-05-23 09:08:43 +02:00
## Abgabe (optional)
__Sie müssen keine Lösung für diese Aufgabe einreichen.__
Sie können Ihre Lösung aber auf die Konformität mit den Programmierstandards testen. Hierzu gehen Sie wie folgt vor:
1. Öffnen Sie eine Kommandozeile (Terminal).
2. Gehen Sie in Ihr Working Directory.
3. Wechseln Sie mit `cd` in das Verzeichnis `sources`.
2023-12-31 11:13:34 +01:00
4. Bauen Sie das Projekt mit dem Kommando `mvn`.