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

2022-09-01 17:10:40

请考虑以下代码:

class abstract Normal1 extends Something 
{
}

class Outer 
{
  class abstract Inner extends Normal1
  {

  }
}

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

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

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


答案 1

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

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

如果内部不是抽象的,那么它与外部联系在一起,并且只有在外部的实例存在时才能存在。检查一下这是否是你真正想要的。


答案 2

嵌套类类似于(在意义上)类的属性。

  1. 与实例变量的情况一样,仅当其对象创建时可用,因为当创建外部对象时,类也可用。inner

因此,如果你想扩展它,那么按照上面的jordao建议,让你的内部类
static inner class


推荐