可能重复:
匿名与命名内部类?- 最佳实践?
通常在使用 JavaHandlers
时,人们经常使用三种方法:
- 创建一个将实现所有需要的接口的类
- 创建一个
anonymous inner class
- 创建一个
local class
我只对2) 和 3) 之间的区别感兴趣
比较 2) 和 3) 我们可以考虑下面的代码。在这个例子中,编译器只生成一个类。
class MyHandler implements ClickHandler, DragHandler, MovedHandler
{
public void onClick(ClickEvent clickEvent)
{
// Do stuff
}
public void onMoved(MovedEvent movedEvent) {
// Do stuff
}
public void onDrag(DragEvent event) {
// Do stuff
}
}
MyHandler localHandler = new MyHandler();
button.addClickHandler(localHandler);
something.addDragHandler(localHandler);
that.addMovedHandler(localHandler);
在下面的示例中,编译器将生成三个内部类(如果我错了,请纠正我)。
button.addClickHandler(new ClickHandler()
{
public void onClick(ClickEvent clickEvent)
{
// Do stuff
}
});
something.addDragHandler(new DragHandler()
{
public void onDrag(DragEvent event)
{
// Do stuff
}
});
that.addMovedHandler(new MovedHandler()
{
public void onMoved(MovedEvent movedEvent)
{
// Do stuff
}
});
我的问题是:这两种方法之间还有其他区别吗?尽管使用另一个,但是否有任何警告?