暗黙的なスーパーイニシャライザ引数不足
'{0}' から暗黙的に呼び出された名前のないコンストラクタには、必須パラメータがあります。
説明
#この診断は、コンストラクタがスーパークラスの名前のないコンストラクタを暗黙的に呼び出し、スーパークラスの名前のないコンストラクタに必須パラメータがあり、その必須パラメータに対応するスーパーパラメータがない場合に、アナライザによって生成されます。
例
#以下のコードは、クラスBの名前のないコンストラクタがクラスAの名前のないコンストラクタを暗黙的に呼び出しますが、Aのコンストラクタにはxという名前の必須位置パラメータがあるため、この診断を生成します。
dart
class A {
A(int x);
}
class B extends A {
B();
}以下のコードは、クラスBの名前のないコンストラクタがクラスAの名前のないコンストラクタを暗黙的に呼び出しますが、Aのコンストラクタにはxという名前の必須名前付きパラメータがあるため、この診断を生成します。
dart
class A {
A({required int x});
}
class B extends A {
B();
}一般的な修正
#サブクラスのコンストラクタにパラメータを追加できる場合は、スーパークラスのコンストラクタの必須パラメータに対応するスーパーパラメータを追加します。新しいパラメータは必須にすることができます。
dart
class A {
A({required int x});
}
class B extends A {
B({required super.x});
}またはオプションにすることもできます。
dart
class A {
A({required int x});
}
class B extends A {
B({super.x = 0});
}サブクラスのコンストラクタにパラメータを追加できない場合は、必須引数を持つ明示的なスーパーコンストラクタ呼び出しを追加します。
dart
class A {
A(int x);
}
class B extends A {
B() : super(0);
}