如何指定实现接口的引用方法参数

时间:2013-02-23 05:48:12

标签: java events event-handling event-listener

我只是出于好奇的问题,它是如何为方法指定参考参数并确保此参数必须实现接口

例如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

2 个答案:

答案 0 :(得分:2)

示例方法的方法说明是:

public void addActionListener(ActionListener l)

因此,您可以传递给它的唯一类型是ActionListener

类型

来源:http://docs.oracle.com/javase/6/docs/api/javax/swing/JTextField.html#addActionListener(java.awt.event.ActionListener)

答案 1 :(得分:1)

您需要做的就是将参数的类型设置为接口名称,然后该方法将接受对象,只要它们是实现接口的类型。

示例:

 public void methodName(InterfaceName x) {}

将接受任何实现“InterfaceName”的对象作为参数。

在这种特殊情况下,public void addActionListener(ActionListener l)确保参数实现ActionListener接口(Java就是这样做的)。