Java Pass Method as Parameter

后端 未结 16 1509
滥情空心
滥情空心 2020-11-22 02:17

I am looking for a way to pass a method by reference. I understand that Java does not pass methods as parameters, however, I would like to get an alternative.

I\'ve

16条回答
  •  生来不讨喜
    2020-11-22 02:54

    Use the Observer pattern (sometimes also called Listener pattern):

    interface ComponentDelegate {
        void doSomething(Component component);
    }
    
    public void setAllComponents(Component[] myComponentArray, ComponentDelegate delegate) {
        // ...
        delegate.doSomething(leaf);
    }
    
    setAllComponents(this.getComponents(), new ComponentDelegate() {
                                                void doSomething(Component component) {
                                                    changeColor(component); // or do directly what you want
                                                }
                                           });
    

    new ComponentDelegate()... declares an anonymous type implementing the interface.

提交回复
热议问题