http://www.java2s.com/Code/Java/Event/PropertyChangeListenerSample.htm
(Java)的
在上面的例子中,我注意到了
行PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
本身,这没有意义,因为PropertyChangeListener(java.beans.PropertyChangeListener)是一个接口,因此不可实例化。
然而,紧接着,似乎正在编写实现PropertyChangeListener的类,而不会创建类关键字语句。我以前从未遇到过这种语法。
这个语法叫什么,我该如何正确使用它? 另外,有人能给我更多的例子吗? 我不确定究竟要google什么,所以任何线索都会有所帮助。
答案 0 :(得分:2)
这是 anonymous inner class 的一个实例。
匿名内部类是一个没有自己唯一类名的类(正如您所注意到的,它只是由实现的接口命名)。匿名内部类还可以访问声明它的方法中的任何最终变量。
答案 1 :(得分:1)
Anonymous inner class(来自维基百科)
也使用匿名内部类 只有事件处理代码的地方 由一个组件使用,因此 不需要命名参考。
这避免了一个庞大的整体 actionPerformed(ActionEvent)方法 有多个if-else分支到 确定事件的来源。这个 代码类型通常被认为是凌乱的 而内在的阶级变化是 被认为是更好的 问候。
当开发人员想要编写自己的ActionEvent
和ActionListener
以及EventListener
时,它主要用于(在AWT中)。
您也可以在java.util.Vector elements()
方法中找到它,该方法具有匿名内部类Enumerable
。
答案 2 :(得分:0)
这被称为Anonymous inner Class
...有关内部类的详细信息,请参阅this question