跳到主要內容

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);
}