Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Predicate und BiPredicate

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video stellt Ihnen der Trainer die vordefinierten Functional Interfaces Predicate und BiPredicate vor. Diese Functional Interfaces nehmen Objekte entgegen und liefern ein Boolean als Rückgabewert zurück. Daher eignen sie sich, um festzustellen, ob eine bestimmte Bedingung zutrifft oder nicht. Predicate wird daher typischerweise eingesetzt, um mit einem Objekt eine Prüfung durchzuführen.

Transkript

In diesem Video werde ich Ihnen die vordefinierten Functional Interfaces Predicate und BiPredicate vorstellen. Predicate nimmt ein Objekt entgegen und liefert einen Boolean als Rückgabewert zurück. Daher eignet es sich, um festzustellen, ob eine bestimmte Bedingung für ein Objekt zutreffend ist oder nicht. Und daher wird Predicate typischerweise eingesetzt, um mit einem Objekt eine Prüfung durchzuführen. Die Single Abstract Method von Predicate trägt den Namen Test. In unserem Beispielprogramm könnten wir beispielsweise abfragen, ob ein Wert negativ, also kleiner als null ist. Zunächst benötige ich eine Variable des Typs Predicate und die nenne ich mal Tester. Predicate werde ich jetzt mal hier unten einsetzen und die Variable nenne ich tester. Predicate muss ich importieren und über einen Typ-Parameter kann ich auch hier wieder entscheiden, von welchen Datentypen mein Übergabeparameter sein soll. Ich wähle mal Double. Rechts von der Zuweisung baue ich eine Lambda-Expression ein, die True zurückgibt, wenn der eingegebene Parameter kleiner als 0,0 ist. Ich brauche also zunächst mal einen Parameter, den nenne ich g. Dann brauche ich einen Lambda-Operator und G < 0,0 ergibt dann True und das wird dann zurück geliefert, wenn eben der übergebene Parameter kleiner als 0,0 ist. Und den Tester setze ich jetzt in unserem Programm ein und zwar hier in der if Verzweigung. Hier werde ich jetzt die Variable tester hinschreiben und dann rufe ich die Methode test auf und übergebe ihr das gewicht. Und das probiere ich einmal aus. 0,51 ist die Groesse. 6,1 ist das Gewicht und dann noch ein Gewicht und jetzt gebe ich mal -1 ein und das Programm wird beendet. Als Nächstes werde ich Ihnen auch noch das Functional Interface BiPredicate vorstellen, mit dem sich gleich zwei Werte testen lassen. Und zwar sollen sich sowohl die Groesse der Klasse, als auch ihr Gewicht in einem sinnvollen Rahmen halten. Oder anders gesagt, wenn der Benutzer negative oder zu hohe Werte eingibt, soll alles abgebrochen werden. Ich gehe also zunächst mal zu meinem Tester und dort entferne ich das Functional Interface Predicate und ersetze es durch BiPredi und dann Strg + Leertaste, BiPredicate. So und dann brauche ich hier zwei Typ-Parameter, auch noch ein zweites Mal ein Double und hier rechts von der Zuweisung muss ich nun etwas mehr umwandeln. Ich brauch jetzt zwei Parameter und zwar nicht nur die groesse, sondern auch das gewicht. Und hier rechts vom Lambda-Operator werde ich einen Anweisungs-Block hinzufügen, weil ich nun etwas mehr, als nur eine Anweisung programmieren möchte und zwar werde ich jetzt zunächst einmal abfragen, ob die groesse < 0 ist. < 0,0 und dann frage ich ab, ob die groesse größer als 1,0 ist. Denn eine Katze, die größer als 1 m groß ist, sollte darauf hinweisen, dass sich der Benutzer vertan hat. Wenn ja, soll true zurückgegeben werden, ansonsten false. So, auch das Gewicht der Katze soll nicht negativ sein können und ein Gewicht über 100 Kg betrachten wir auch als eine Fehleingabe. Also gehe ich jetzt auch noch hin und füg das hier auch noch ein oder gewicht < 0,0 oder Gewicht 100,0. So und in der if -Verzweigung werde ich nun testen, ob die beiden Werte die Unter- und Obergrenzen überschreiben. Also tester.test und dann dort (groesse, gewicht). Und das probieren wir auch noch einmal aus. So jetzt kann ich an dieser Stelle beispielsweise eine Groesse reinschreiben, die viel zu groß ist. 3 m und Gewicht 6,1 und dann wird das Programm beendet, so hatten wir es ja auch programmiert. In diesem Video habe ich Ihnen die Functional Interfaces Predicate und BiPredicate vorgestellt. Mit einer Implementierung dieser beiden Functional Interfaces überprüfen wir, ob ein Objekt oder zwei Objekte eine bestimmte Bedingung erfüllen. Der Rückgabewert ist dann stets ein Boolean.

Java Grundkurs 3: Generische Programmierung, Datenströme, Datumsrechnung

Steigen Sie tiefer in die Java-Programierung ein und lernen Sie den Umgang mit generischen Typen, Lamda-Ausdrücken, DAtenströmen und mit Datums- und Zeitberechnung.

5 Std. 24 min (47 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!