5
Wir Ausdruck für Getter wie untenLambda Ausdruck für Setter
Function<Student, String> studentNameGetter = Student::getName;
Wie über das Erstellen von Lambda-Ausdruck für die Setter Lambda können?
Wir Ausdruck für Getter wie untenLambda Ausdruck für Setter
Function<Student, String> studentNameGetter = Student::getName;
Wie über das Erstellen von Lambda-Ausdruck für die Setter Lambda können?
Ich bin nicht sicher, was Sie meinen, indem Sie einen Lambda-Ausdruck für den Setter erstellen.
Es sieht so aus, als ob Sie versuchen, die Methodenreferenz einer geeigneten funktionalen Schnittstelle zuzuweisen. In diesem Fall ist die beste Übereinstimmung zu einem BiConsumer
:
BiConsumer<Student, String> studentNameSetter = Student::setName;
Können Sie erklären, warum dies funktioniert? Ich dachte, ein 'BiConsumer' kann nur etwas wie '(Student a, String b) -> a.setName (b)' zugewiesen werden. Aber die Signatur von 'setName' hat nur einen Parameter. –
T3rm1
@ T3rm1 es funktioniert, weil 'Student a' ist ein Parameter &' setName' hat einen Parameter. Der Konsument nimmt also sowohl das Zielobjekt als auch den Setter-Parameter als Parameter. – Mukund