Ich suche nach einer Möglichkeit, eine Methode als Referenz zu übergeben. Ich verstehe, dass Java keine Methoden als Parameter übergibt, möchte jedoch eine Alternative erhalten.
Mir wurde gesagt, dass Schnittstellen die Alternative zur Übergabe von Methoden als Parameter sind, aber ich verstehe nicht, wie eine Schnittstelle als Referenzmethode fungieren kann. Wenn ich das 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, da mehrere verschiedene Methoden dieselbe Methode mit denselben Parametern aufrufen können.
Was ich erreichen möchte, ist etwas Ähnliches:
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 wie:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());