Używam lamdbas, dzięki czemu mogę konsekwentnie ustawiać właściwości obiektu ModelObject według wartości, które mogę pobrać z trzech różnych obiektów. Kod działa tak:Przydział dwukropka w metodzie z dwoma parametrami
public class Processor {
private void bar(Setter setter, MyClass myObject) {
String variable = myObject.getStringByABunchOfMethods();
setter.setVariable(variable);
}
protected void foo(...) {
...
bar(value -> model.setA(CONSTANT, value), aObject);
bar(value -> model.setB(value), bObject);
bar(value -> model.setC(value), cObject);
...
}
private interface Setter {
public void setVariable(String string);
}
}
public interface IModel {
public void setA(String arg0, String arg1);
public void setB(String arg0);
public void setC(String arg0);
}
Czytałem here że możliwe jest przepisanie bar(value -> model.setB(value), bObject);
do bar(model::setB, bObject)
. Myślę, że to wygląda lepiej i bardziej zwięźle, ale nie znalazłem sposobu na przepisanie metody setA
do podwójnego notacji. Czy ktoś może mi powiedzieć, czy jest to możliwe, a jeśli tak, to w jaki sposób?
Proszę odnieść się do tego [Link do odnośników metod] (https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html). Pokazuje wszystkie rodzaje odniesień do metod. Mam nadzieję, że to pomaga –
Nie sądzę, że jest to możliwe. – toongeorges