我只是出于好奇的问题,它是如何为方法指定参考参数并确保此参数必须实现接口
例如ActionListener方法actionPerformed处理事件时 使用addActionListener(arg)方法将actionListener添加到GUI组件时 arg必须是对实现ActionListener接口的对象的引用 那是我的问题 addActionListener方法如何确保其arg实现ActionListener接口
JTextField textField = new JTextField();//creating new text field
TextFieldHandler textFiledHandler = new TextFieldHandler();//object of the handler
textField.addActionListener(textFieldHandler);//here's my question
add(textField);
//creating a nested class
private class TextFieldHandler implements ActionListener {
@Override
public void actionPerformed (ActionEvent event) {
//do something here
}//end actionPerformed
}//end class TextFieldHandler
答案 0 :(得分:2)
示例方法的方法说明是:
public void addActionListener(ActionListener l)
因此,您可以传递给它的唯一类型是ActionListener
答案 1 :(得分:1)
您需要做的就是将参数的类型设置为接口名称,然后该方法将接受对象,只要它们是实现接口的类型。
示例:
public void methodName(InterfaceName x) {}
将接受任何实现“InterfaceName”的对象作为参数。
在这种特殊情况下,public void addActionListener(ActionListener l)
确保参数实现ActionListener
接口(Java就是这样做的)。