跳到主要內容

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
}