没有类型为MySuperClass< B>的封闭实例是可用的由于一些中间构造函数 [英] No enclosing instance of type MySuperClass<B> is available due to some intermediate constructor

查看:129
本文介绍了没有类型为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&lt; B&gt;的封闭实例是可用的由于一些中间构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆