参照によってメソッドを渡す方法を探しています。Javaはパラメーターとしてメソッドを渡さないことを理解していますが、別の方法を入手したいと考えています。
インターフェースはメソッドをパラメーターとして渡す代わりに使用できると言われましたが、インターフェースが参照としてメソッドとして機能する方法がわかりません。私が正しく理解していれば、インターフェースは、定義されていない抽象的なメソッドのセットにすぎません。複数の異なるメソッドが同じパラメーターで同じメソッドを呼び出す可能性があるため、毎回定義する必要があるインターフェースを送信したくありません。
私が達成したいのはこれに似たものです:
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
}
次のように呼び出されます:
setAllComponents(this.getComponents(), changeColor());
setAllComponents(this.getComponents(), changeSize());