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

非_生成_コンストラクタ

生成コンストラクタ '{0}' が期待されていますが、ファクトリが見つかりました。

説明

#

コンストラクタの初期化子リストがスーパークラスのコンストラクタを呼び出し、呼び出されたコンストラクタがファクトリコンストラクタである場合に、アナライザはこの診断を生成します。初期化子リストでは、生成コンストラクタのみを呼び出すことができます。

#

次のコードは、コンストラクタ super.one() の呼び出しがファクトリコンストラクタを呼び出しているため、この診断を生成します。

dart
class A {
  factory A.one() = B;
  A.two();
}

class B extends A {
  B() : super.one();
}

一般的な修正

#

スーパークラスの呼び出しを、生成コンストラクタを呼び出すように変更してください。

dart
class A {
  factory A.one() = B;
  A.two();
}

class B extends A {
  B() : super.two();
}

生成コンストラクタが無名コンストラクタであり、それに引数が渡されていない場合は、スーパークラスの呼び出しを削除できます。