2010-11-18 20 views
2

http://www.java2s.com/Code/Java/Event/PropertyChangeListenerSample.htmクラスを作成中にクラスを作成していますか?

(ジャワ)

上記の例でのPropertyChangeListener(java.beans.PropertyChangeListener)であるように、私はそれ自体でライン

PropertyChangeListener propertyChangeListener = new PropertyChangeListener() { 

に気づいた、これは、意味がありませんしたがって、インスタンス化することはできません。

しかし、直後には、classキーワードステートメントを作成することなく、PropertyChangeListenerが実装されているクラスのようです。私は前にこの構文に遭遇したことはありません。

この構文は何と呼ばれ、どのように正しく使用できますか? また、誰も私にそれの例を教えてもらえますか? 私は正確に何をGoogleにするのか分からないので、どんな導線が役に立つでしょう。

答えて

1

Anonymous inner class

匿名の内部クラスは、イベント処理コードのみ つの構成要素によって使用されるのである場合も 使用され、したがって は、指定基準を必要としません。

これは に大きなモノリシック のactionPerformed(のActionEvent)複数のif-else分岐を有する方法 を回避するイベントのソースを識別する。この コードのタイプは、しばしば乱雑であると考えられます。 と内部クラスのバリエーションは、すべて については、より良いと思われる です。

開発者が用ActionEventActionListenerEventListener自分自身を書きたいときには、主に(AWTで)使われています。

また、匿名の内部クラスEnumerableを持つjava.util.Vector elements()メソッドで見つけることができます。

2

anonymous inner classのインスタンスです。

匿名の内部クラスは独自のクラス名を持たないクラスです(あなたが気づいたように、実装されたインターフェイスの名前にすぎません)。匿名の内部クラスは、それが宣言されているメソッドの最終変数にもアクセスできます。 (ウィキペディアから)

0

これはAnonymous inner Classと呼ばれています...内部クラスの詳細については、this questionを参照してください。