Ich suche nach einer Möglichkeit, eine Methode per Referenz zu übergeben. Ich weiß, dass Java keine Methoden als Parameter übergibt, aber ich würde gerne eine Alternative finden.
Mir wurde gesagt, dass Schnittstellen die Alternative zur Übergabe von Methoden als Parameter sind, aber ich verstehe nicht, wie eine Schnittstelle als Methode per Referenz fungieren kann. Wenn ich es richtig verstehe, ist eine Schnittstelle einfach ein abstrakter Satz von Methoden, die nicht definiert sind. Ich möchte keine Schnittstelle senden, die jedes Mal definiert werden muss, weil mehrere verschiedene Methoden dieselbe Methode mit denselben Parametern aufrufen könnten.
Was ich erreichen möchte, ist etwas Ähnliches wie dies:
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
}
aufgerufen werden, wie zum Beispiel:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());