1

次の状況の命名に問題があります

{...}

X.a;
a.addListener( new ListenerForX(){
// some interface methods
});

{...}

以下と同じです。

{...} 
X.a;
a.addListener( new XListener());
{...} 
private class XListener implements ListenerForX{
//some methods
}

それはどのように呼ばれますか?

4

2 に答える 2

4

最初のコード例は、匿名内部クラスと呼ばれます。

どちらの例も Java で有効です。メソッドは単に関心がListenerForXあり、その実装には関心がありません。

于 2013-05-20T09:49:11.843 に答える
1

最初のものは匿名の内部クラスです。

とのインターフェースがあるWalkableとしますdoWalk ()

Walkable インスタンスを受け取るメソッドの場合、次のように記述できます。

takeForaWalk(new Walkable() {
 void doWalk() {
 //Impl
}}
)
于 2013-05-20T09:49:40.443 に答える