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

第一个是匿名内部类。

假设你有一个接口WalkabledoWalk ()

对于采用 Walkable 实例的方法,您可以编写类似 .

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