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

问题描述

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

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

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

来自外部类的方法在作用域内,但不是由匿名类直接继承的,所以我不能在这里简单地使用 super

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

解决方法

如果封闭类中的方法是非静态的,那么像这样调用它:

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

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

df.dtypes
Out[28]: 
date    datetime64[ns]
mm             float64
dtype: object

df.head()
Out[29]: 
                 date   mm
0 1971-01-01 07:00:00  2.2
1 1971-01-02 07:00:00  2.0
2 1971-01-03 07:00:00  3.0
3 1971-01-04 07:00:00  0.0
4 1971-01-05 07:00:00  0.0