跳到主要内容

undefined_constructor_in_initializer

类 '{0}' 没有名为 '{1}' 的构造函数。

类 '{0}' 没有未命名的构造函数。

描述

#

当在构造函数的初始化列表中调用超类构造函数,但超类未定义该构造函数时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为 A 没有未命名的构造函数

dart
class A {
  A.n();
}
class B extends A {
  B() : super();
}

以下代码会生成此诊断信息,因为 A 没有名为 m 的构造函数

dart
class A {
  A.n();
}
class B extends A {
  B() : super.m();
}

常见修复方法

#

如果超类定义了应该调用的构造函数,则更改要调用的构造函数

dart
class A {
  A.n();
}
class B extends A {
  B() : super.n();
}

如果超类没有定义合适的构造函数,则定义要调用的构造函数

dart
class A {
  A.m();
  A.n();
}
class B extends A {
  B() : super.m();
}