Ma question est lambda et les références de méthodes concernent toutes les interfaces fonctionnelles. ils n'en fournissent que la mise en œuvre.java 8 référence de la méthode derrière la scène
maintenant Quand j'écris:
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;
}}
et si j'écris:
Function<Apple, Integer> getWeight = Apple::getWeight;
ou
appleList.stream().map(Apple::getColor).collect(toList());
comment il travaille effectivement mon getter ne prend aucun paramètre d'Apple ? car selon l'interface fonctionnelle de la fonction
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);}
il attend un paramètre et retourner quelque chose et il devrait fonctionner effectivement lorsque le getter est comme:
public int getWeight(Apple a) {
return a.weight;
}
je suis peu confus merci à l'avance