我试图使用父类(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 设为静态即可解决我的问题。
关于java - 由于某些中间构造函数,类型 MySuperClass<B> 的封闭实例不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703812/