跳到主要内容

静态字段的初始化器

'{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;
  }
}