没有类型为MySuperClass< B>的封闭实例是可用的由于一些中间构造函数 [英] No enclosing instance of type MySuperClass<B> is available due to some intermediate constructor
本文介绍了没有类型为MySuperClass< B>的封闭实例是可用的由于一些中间构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用超类型的内部类,它使用泛型。上面有这个奇怪的错误。
class MySuperClass< B& {
class InnerClass {
}
MySuperClass(InnerClass ... c){
}
}
在子类中,我试图实例化它:
class MySubClass extends MySuperClass< String> {
MySubClass(){
super(new InnerClass(),new InnerClass());
}
}
编译器让我困惑了
没有MySuperClass类型的封闭实例< B>为什么?
h2_lin>解决方案他自己找到了答案:
InnerClass不是静态的,因此MySuperClass的一个实例必须传递这个$引用 - 但是在之前不可用super()调用...简单地让InnerClass静态解决我的问题。
I was trying to use an inner class of the super type, which was using generics. And got that strange error above.
class MySuperClass<B> { class InnerClass { } MySuperClass(InnerClass... c) { } }
In the sub class I tried to instantiate it:
class MySubClass extends MySuperClass<String> { MySubClass() { super(new InnerClass(), new InnerClass()); } }
The compiler confused me with
No enclosing instance of type MySuperClass<B> is available due to some intermediate constructor
Why?
解决方案Heh, and found the answer myself:
The InnerClass is not static thus an instance of MySuperClass must be passed for the this$ reference - but that's not available before the super() call... simply making InnerClass static solved my problem.
这篇关于没有类型为MySuperClass< B>的封闭实例是可用的由于一些中间构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文