Я ищу способ передать метод по ссылке. Я понимаю, что 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());