跳到主要內容

靜態欄位的初始化器

'{0}' 是包含類中的靜態欄位。在建構函式中初始化的欄位不能是靜態的。

描述

#

當靜態欄位在建構函式中使用初始化形參或在初始化列表中賦值進行初始化時,分析器會生成此診斷資訊。

示例

#

以下程式碼會生成此診斷資訊,因為靜態欄位 a 正由初始化形參 this.a 進行初始化

dart
class C {
  static int? a;
  C(this.a);
}

常見修復方法

#

如果該欄位應該是例項欄位,則移除關鍵字 static

dart
class C {
  int? a;
  C(this.a);
}

如果您打算初始化例項欄位但輸入了錯誤的名稱,則更正被初始化欄位的名稱

dart
class C {
  static int? a;
  int? b;
  C(this.b);
}

如果您確實想初始化靜態欄位,則將初始化移至建構函式體中

dart
class C {
  static int? a;
  C(int? c) {
    a = c;
  }
}