匿名内部类:它们何时适合?

Chr*_*ell 3 java overriding anonymous-inner-class anonymous-class

以下面的例子为例.有一个我想要使用的对象,称之为Doodad.Doodad元素处理浏览器事件的能力很差.a的典型实例化Doodad将是Doodad someDoodad = new Doodad();.显然,由于事件处理不当,这不符合我的需要.我是否适合覆盖该onBrowserEvent()方法,如下所示:

Doodad someDoodad = new Doodad() {
@Override
  public void onBrowserEvent(Event event) {
      switch (DOM.eventGetType(event)) {
          case Event.ONDBLCLICK:
          case Event.ONFOCUS:
          case Event.ONCLICK:
              if (!isEnabled()) {
                  return;
              }
              break;
      }
      super.onBrowserEvent(event);
  }
};
Run Code Online (Sandbox Code Playgroud)

显然,这是一个简单的例子,但我当可能希望使用匿名内部类?这是明确禁止还是不可能?

我看到第一个问题有很多答案,但到目前为止,答案都没有回答第二个问题:是否明确禁止或不可能使用匿名内部类?

Ale*_*exR 6

通常,匿名内部类的最佳用法是,您只想创建此类的特定实现的一个实例.当实现非常简单时.理想情况下,它应该包含1-2行代码.

在你的情况下它仍然可以,虽然你的方法onBrowserEvent()超过2行.