【发布时间】:2012-10-08 16:56:26
【问题描述】:
在处理匿名内部类时,我对接口的概念感到困惑。据我所知,你不能在 Java 中实例化接口,所以下面的语句会出现编译错误
ActionListener action = new ActionListener(); // compile error
当它处理匿名类时会发生什么?为什么它允许使用new?例如:
JButton button = new JButton("A");
button.addActionListener(new ActionListener(){ //this is fine
@Override
public void actionPerformed(ActionEvent e){
}
};
编译器是否只是创建一个类并在幕后实现ActionListener?它是如何工作的?
【问题讨论】:
标签: java interface anonymous-function inner-classes