Sto cercando un modo per passare un metodo per riferimento. Capisco che Java non passa metodi come parametri, tuttavia, vorrei ottenere un'alternativa.
Mi è stato detto che le interfacce sono l'alternativa ai metodi di passaggio come parametri, ma non capisco come un'interfaccia possa agire come metodo per riferimento. Se capisco correttamente un'interfaccia è semplicemente un insieme astratto di metodi che non sono definiti. Non voglio inviare un'interfaccia che deve essere definita ogni volta perché diversi metodi potrebbero chiamare lo stesso metodo con gli stessi parametri.
Quello che vorrei realizzare è qualcosa di simile a questo:
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
}
invocato come:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());