メインコンテンツにスキップ

initializer_for_static_field

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