Meine Frage ist Lambda und Methodenreferenzen sind alles über funktionale Schnittstellen. Sie liefern nur die Implementierung von ihnen. Jetztjava 8 Methodenreferenz hinter der Szene
wenn ich schreibe:
class Apple{
private int weight;
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}}
und wenn ich schreibe:
Function<Apple, Integer> getWeight = Apple::getWeight;
oder
appleList.stream().map(Apple::getColor).collect(toList());
wie ist es eigentlich meine Getter nicht funktioniert wird jeden Parameter von Apple unter ? weil nach Funktion funktionale Schnittstelle
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);}
es ein Parameter und etwas erwartet zurückkehren und es sollte tatsächlich funktioniert wenn der Getter wie ist:
public int getWeight(Apple a) {
return a.weight;
}
i wenig Dank verwirrt im Voraus am