我正在尝试使用父类(super class)型的内部类,该内部类使用泛型。并得到上面那个奇怪的错误。

class MySuperClass<B> {
   class InnerClass {
   }

   MySuperClass(InnerClass... c) {
   }
}

在子类中,我尝试实例化它:
class MySubClass extends MySuperClass<String> {
   MySubClass() {
      super(new InnerClass(), new InnerClass());
   }
}

编译器使我感到困惑
No enclosing instance of type MySuperClass<B> is available due to some intermediate constructor

为什么?

最佳答案

呵呵,自己找到答案了:

InnerClass不是静态的,因此必须为this $引用传递MySuperClass的实例-但这在super()调用之前不可用...只是使InnerClass静态解决了我的问题。

07-26 09:27