接口作为方法的参数

时间:2013-05-20 09:48:08

标签: java interface anonymous-inner-class

我在命名以下情况时遇到问题

{...}

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

{...}

与以下内容相同:

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

怎么称呼?

2 个答案:

答案 0 :(得分:4)

第一个代码示例名为anonymous inner class

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

答案 1 :(得分:1)

第一个是匿名内部类。

假设您的Walkable接口doWalk ()

对于接收Walkable实例的方法,您可以编写类似。

的内容
takeForaWalk(new Walkable() {
 void doWalk() {
 //Impl
}}
)