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

no_generative_constructors_in_superclass

クラス「{0}」は「{1}」を拡張できません。「{1}」にはファクトリコンストラクタ(生成コンストラクタなし)しかなく、「{0}」には少なくとも1つの生成コンストラクタがあります。

説明

#

アナライザーは、少なくとも1つの生成コンストラクタ(明示的または暗黙的)を持つクラスが、生成コンストラクタを持たないスーパークラスを持っている場合に、この診断を生成します。Object で定義されたものを除くすべての生成コンストラクタは、明示的または暗黙的に、スーパークラスの生成コンストラクタのいずれかを呼び出します。

#

次のコードは、クラス B に暗黙的な生成コンストラクタがあり、A に生成コンストラクタがないため A の生成コンストラクタを呼び出すことができないため、この診断を生成します。

dart
class A {
  factory A.none() => throw '';
}

class B extends A {}

一般的な修正

#

スーパークラスに生成コンストラクタが必要な場合は、追加してください。

dart
class A {
  A();
  factory A.none() => throw '';
}

class B extends A {}

サブクラスに生成コンストラクタが必要ない場合は、ファクトリコンストラクタを追加して削除してください。

dart
class A {
  factory A.none() => throw '';
}

class B extends A {
  factory B.none() => throw '';
}

サブクラスに生成コンストラクタが必要であり、スーパークラスに生成コンストラクタを持たせることができない場合は、代わりにスーパークラスを実装してください。

dart
class A {
  factory A.none() => throw '';
}

class B implements A {}