跳到主要内容

field_initialized_in_parameter_and_initializer

字段不能同时在参数列表和初始化列表中初始化。

描述

#

当字段在构造函数的参数列表和初始化列表中都被初始化时,分析器会生成此诊断信息。

示例

#

以下代码会产生此诊断信息,因为字段 f 同时通过初始化形参和在初始化列表中被初始化。

dart
class C {
  int f;

  C(this.f) : f = 0;
}

常见修复方法

#

如果字段应该通过参数初始化,则移除初始化列表中的初始化。

dart
class C {
  int f;

  C(this.f);
}

如果字段应该在初始化列表中初始化且不需要该参数,则移除该参数。

dart
class C {
  int f;

  C() : f = 0;
}

如果字段应该在初始化列表中初始化但需要该参数,则将其更改为普通参数。

dart
class C {
  int f;

  C(int g) : f = g * 2;
}