跳到主要内容

重复构造函数

名称为 '{0}' 的构造函数已定义。

未命名构造函数已定义。

描述

#

当一个类声明了多个未命名构造函数或多个同名构造函数时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为存在两个未命名构造函数的声明

dart
class C {
  C();

  C();
}

以下代码会生成此诊断信息,因为存在两个名为 m 的构造函数的声明

dart
class C {
  C.m();

  C.m();
}

常见修复方法

#

如果存在多个未命名构造函数且所有这些构造函数都需要,则为它们全部或除一个以外的所有构造函数命名

dart
class C {
  C();

  C.n();
}

如果存在多个未命名构造函数且除一个以外的所有构造函数都不需要,则移除不需要的构造函数

dart
class C {
  C();
}

如果存在多个命名构造函数且所有这些构造函数都需要,则重新命名除一个以外的所有构造函数

dart
class C {
  C.m();

  C.n();
}

如果存在多个命名构造函数且除一个以外的所有构造函数都不需要,则移除不需要的构造函数

dart
class C {
  C.m();
}