2013-05-20 87 views
1

我有命名的问题下面的情况接口作为方法的参数

{...} 

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

{...} 

这是一样的:

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

怎么叫?

回答

4

第一个代码示例叫做anonymous inner class

这两个示例在Java中都是有效的。该方法只对ListenerForX感兴趣,并不关心其实现。

1

第一个是匿名的内部类。

假设你有一个接口WalkabledoWalk()

对于发生在你可以写的东西像一个适合步行的实例的方法。

takeForaWalk(new Walkable() { 
void doWalk() { 
//Impl 
}} 
)