undefined_enum_constructor
枚举没有名为 '{0}' 的构造函数。
枚举没有未命名的构造函数。
描述
#当用于初始化枚举值的构造函数不存在时,分析器会生成此诊断信息。
示例
#以下代码会生成此诊断信息,因为枚举值 c
正由未命名的构造函数初始化,但在 E
中没有定义未命名的构造函数
dart
enum E {
c();
const E.x();
}
以下代码会生成此诊断信息,因为枚举值 c
正由名为 x
的构造函数初始化,但在 E
中没有定义名为 x
的构造函数
dart
enum E {
c.x();
const E.y();
}
常见修复
#如果枚举值正由未命名的构造函数初始化,并且应该使用其中一个命名构造函数,则添加构造函数的名称
dart
enum E {
c.x();
const E.x();
}
如果枚举值正由未命名的构造函数初始化,并且现有命名构造函数都不合适,则定义未命名的构造函数
dart
enum E {
c();
const E();
}
如果枚举值正由命名构造函数初始化,并且应该使用其中一个现有构造函数,则更改被调用的构造函数的名称(如果应该使用未命名的构造函数,则删除该名称)
dart
enum E {
c.y();
const E();
const E.y();
}
如果枚举值正由命名构造函数初始化,并且现有构造函数都不应该使用,则定义一个具有所使用名称的构造函数
dart
enum E {
c.x();
const E.x();
}