跳到主要内容

enum_mixin_with_instance_variable

应用于枚举的混入不能包含实例变量。

描述

#

当应用于枚举的混入声明了一个或多个实例变量时,分析器会产生此诊断信息。这是不允许的,因为枚举值是常量,并且枚举中的构造函数无法初始化混入的任何字段。

示例

#

以下代码会产生此诊断信息,因为混入 M 定义了实例字段 x

dart
mixin M {
  int x = 0;
}

enum E with M {
  a
}

常见修复

#

如果您需要应用混入,请将所有实例字段更改为 getter 和 setter 对,并在必要时在枚举中实现它们

dart
mixin M {
  int get x => 0;
}

enum E with M {
  a
}

如果您不需要应用混入,请将其移除

dart
enum E {
  a
}