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

未初期化_非null許容_インスタンス_フィールド

非null許容インスタンスフィールド「{0}」は初期化する必要があります。

説明

#

アナライザーは、フィールドが宣言されており、次のすべての特性を持っている場合にこの診断を生成します。

#

次のコードは、`x`が`null`が許可されていない場合に暗黙的に`null`で初期化されるため、この診断を生成します。

dart
class C {
  int x;
}

同様に、次のコードは、他のコンストラクタによって初期化されているにもかかわらず、コンストラクタのいずれかによって`x`が`null`が許可されていない場合に暗黙的に`null`で初期化されるため、この診断を生成します。

dart
class C {
  int x;

  C(this.x);

  C.n();
}

一般的な修正

#

フィールドにすべてのインスタンスで同じ合理的なデフォルト値がある場合は、初期化子式を追加してください。

dart
class C {
  int x = 0;
}

フィールドの値がインスタンス作成時に提供されるべき場合は、フィールドの値を設定するコンストラクタを追加するか、既存のコンストラクタを更新してください。

dart
class C {
  int x;

  C(this.x);
}

フィールドをlateとしてマークすることもできます。これにより診断は削除されますが、フィールドがアクセスされる前に値が代入されない場合、実行時に例外がスローされます。このアプローチは、フィールドが参照される前に常に値が代入されることが確実な場合にのみ使用してください。

dart
class C {
  late int x;
}