2010-11-18 71 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瞭解更多內部類的細節