跳到主要内容

final_initialized_in_declaration_and_constructor

'{0}' 是 final 变量,在声明时已给定值,因此不能将其设置为新值。

描述

#

当一个 final 字段被初始化两次时,分析器会产生此诊断:一次在声明时,一次通过构造函数的参数。

示例

#

以下代码会产生此诊断,因为字段 f 被初始化了两次

dart
class C {
  final int f = 0;

  C(this.f);
}

常见修复

#

如果该字段对于所有实例都应具有相同的值,则移除参数列表中的初始化。

dart
class C {
  final int f = 0;

  C();
}

如果该字段可以在不同实例中具有不同的值,则移除声明中的初始化。

dart
class C {
  final int f;

  C(this.f);
}