调用所有Java接口方法

时间:2019-06-16 21:00:43

标签: java events interface

在许多程序中,我看到实现接口并覆盖方法时,会在特定事件上调用它们(例如:onActionListener)。我需要知道如何从实现该特定接口的所有类中调用方法。谢谢您的回答。

1 个答案:

答案 0 :(得分:1)

仅当类的方法为static时,才能调用该方法。如果不是,则只能调用“对象”(此类的实例)的方法。现在,假设您有一堆对象和一个名为ActionListener的接口,其中带有actionPerformed()方法。为了调用该方法,您将必须检查此对象implements ActionListener-是否具有actionPerformed()方法。然后,将其强制转换为动作侦听器,然后调用该方法。

看看这个例子:

JButton b1 = new JButton();
JButton b2 = new JButton();
Object[] objects = { b1, b2 }; // Some objects
for (Object obj : objects) {
    if (obj instanceof ActionListener) { // Check if they implement action listener
        ActionListener objListener = (ActionListener) obj;
        objListener.actionPerformed(new ActionEvent(null, 1, "command"));
    }
}