Szukam sposobu na przekazanie metody przez odniesienie. Rozumiem, że Java nie przekazuje metod jako parametrów, jednak chciałbym uzyskać alternatywę.
Powiedziano mi, że interfejsy są alternatywą dla przekazywania metod jako parametrów, ale nie rozumiem, jak interfejs może działać jako metoda przez odniesienie. Jeśli dobrze rozumiem, interfejs jest po prostu abstrakcyjnym zestawem metod, które nie są zdefiniowane. Nie chcę wysyłać interfejsu, który musi zostać zdefiniowany za każdym razem, ponieważ kilka różnych metod może wywoływać tę samą metodę z tymi samymi parametrami.
Chciałbym osiągnąć coś podobnego do tego:
public void setAllComponents(Component[] myComponentArray, Method myMethod) {
for (Component leaf : myComponentArray) {
if (leaf instanceof Container) { //recursive call if Container
Container node = (Container) leaf;
setAllComponents(node.getComponents(), myMethod);
} //end if node
myMethod(leaf);
} //end looping through components
}
przywołane, takie jak:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());