由于某些中间构造函数调用,没有可用的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不是抽象的,它与外部相关联,并且只有在外部实例存在时才存在。 检查这是否是你真正想要的。
嵌套类就像(在某种意义上)类的属性。
- 在实例变量的情况下,仅当它的对象被创建时与
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(); }