2010-11-18 65 views
2

http://www.java2s.com/Code/Java/Event/PropertyChangeListenerSample.htm在实例化时编写一个类?

(JAVA)

在上面的例子中,我注意到了线

PropertyChangeListener propertyChangeListener = new PropertyChangeListener() { 

本身,这是没有意义的,为的PropertyChangeListener(的java.beans.PropertyChangeListener)是一个接口,因此不可实例化。

但是,之后,它似乎正在编写一个实现PropertyChangeListener的类,而且没有编写任何类关键字语句。我从来没有遇到过这种语法。

这是什么语法调用,我该如何正确使用它? 另外,任何人都可以给我更多的例子吗? 我不确定谷歌到底是什么,所以任何线索都会有帮助。

回答

1

Anonymous inner class(维基百科)

匿名内部类也用于 其中所述事件处理代码是仅由 一个部件使用,因此 不需要命名参考。

这避免了大的单片 的actionPerformed(ActionEvent的)方法 与多个的if-else分支到 识别事件的来源。这 类型的代码通常被认为是凌乱的 和内部类别的变化是 被认为是在所有 方面更好。

它主要用于(在AWT)时,开发商要自己写ActionEventActionListenerEventListener

您还可以在java.util.Vector elements()方法中找到它,该方法的匿名内部类为Enumerable

2

这是一个anonymous inner class的实例。

匿名内部类是没有自己唯一类名称的类(正如您注意到的,它只是由实现的接口命名)。匿名内部类也可以访问声明方法中的任何最终变量。

0

这就是所谓的Anonymous inner Class ...查看this question了解更多内部类的细节