У меня есть два интерфейса:
public interface Observer<T extends Observer<T>> {
List<T> getObserverChildren();
default void forEachObserver(Consumer<T> consumer) {
this.getObserverChildren().forEach(consumer);
}
}
и
public interface ChronoObserver extends Observer<ChronoObserver> {
default void updateTime(int seconds, int minutes) {
this.forEachObserver(observerChild -> observerChild.updateTime(seconds, minutes));
}
}
Я хотел бы упростить вызов метода "forEachObserver", добавив что-то более подобное:
default void forEachObserver(TheType myMethod) { // myMethod may be any method like updateTime(...), updateDay(...), etc...
this.getObserverChildren().forEach(observerChild -> observerChild.myMethod);
}
чтобы я мог назвать это примерно так:
this.forEachObserver(myMethod); // myMethod could be updateTime(seconds, minutes), updateDay(day), etc...
Можно ли как-нибудь упростить это? Спасибо