如何从封闭的外部 class 调用与在匿名 class 中实现的方法同名的方法?

How do I call a method of same name from an enclosing outer class as the one being implemented in an anonymous class?

我正在使用匿名 class 实现一个接口,returns 一个预定义的文件夹路径作为一个字符串并且需要一个尾部斜杠。封闭对象的 class 已经实现为 getDataFolder() 但 returns 是 File 对象。这很好,除了我正在实施的方法具有相同的名称...

如果我这样实现它,那么我会得到一个 Whosebug 错误,因为实现的方法试图调用自身而不是外部 class 方法。

resourceManager = new PluginResourceManager(this) {
   @Override
   public String getDataFolder()
      throws IOException
   {
      return getDataFolder() + java.io.File.separator;
   }
};

来自外部 class 的方法在范围内,但没有被匿名 class 直接继承,所以我不能在这里简单地使用 super

如何从这个匿名内部 class 方法的外部 class 显式调用我想要的方法?

如果封闭 class 中的方法是非静态的,则这样调用它:

resourceManager = new PluginResourceManager(this) {
   @Override
   public String getDataFolder()
      throws IOException
   {
      return EnclosingClassName.this.getDataFolder() + java.io.File.separator;
   }
};

如果方法是静态的,那就简单一点:

resourceManager = new PluginResourceManager(this) {
   @Override
   public String getDataFolder()
      throws IOException
   {
      return EnclosingClassName.getDataFolder() + java.io.File.separator;
   }
};