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