请看下面的例子。我有一个要使用的对象,称为DoodadDoodad元素对浏览器事件的处理不佳。 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);
  }
};

显然,这是一个简单的示例,但是什么时候我不想使用匿名内部类?是否曾经明确禁止或不可能?

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

最佳答案

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

您的情况仍然可以,尽管您的方法onBrowserEvent()超过2行。

09-26 21:03