由于某些中间构造函数调用,没有可用的PerfHelper类型的封闭实例

考虑以下代码:

class abstract Normal1 extends Something { } class Outer { class abstract Inner extends Normal1 { } } class General extends Outer.Inner // Problem occurs at this { } 

我得到的错误是“由于一些中间构造函数调用,没有可用的PerfHelper类型的封闭实例”

我的问题是我可以像上面那样扩展内部类吗?

将内部类声明为static ,您应该能够扩展它:

 class outer { static abstract class inner extends normal1 { } } 

如果inner不是抽象的,它与外部相关联,并且只有在外部实例存在时才存在。 检查这是否是你真正想要的。

嵌套类就像(在某种意义上)类的属性。

  1. 在实例变量的情况下,仅当它的对象被创建时与inner类相同时才可用,当创建外部对象时也可用。

因此,如果您想扩展它,那么将您的内部类作为static inner class
正如jordao在上面提出的那样

试试这个,(读取嵌套类inheritance规则 )。

 abstract class normal1 extends something { } class outer { abstract class inner extends normal1{} } class Outer1 extends outer { class General extends inner {} } 

在你的类中修改它的构造函数a来调用超级内部类构造函数。 这是代码..

 public General(){ new outer().super(); }