無効な_オーバーライド
'{1}.{0}' ('{2}') は '{3}.{0}' ('{4}') の有効なオーバーライドではありません。
セッター '{1}.{0}' ('{2}') は '{3}.{0}' ('{4}') の有効なオーバーライドではありません。
説明
#この診断は、クラスのメンバーがスーパークラスのメンバーをオーバーライドしていることが検出されたが、そのオーバーライドが無効である場合にアナライザーによって生成されます。オーバーライドが無効であるのは、次のすべてが真である場合です。
- オーバーライドされたメンバーによって許可されているすべての引数を許可します。
- オーバーライドされたメンバーによって要求されていない引数は要求しません。
- オーバーライドされたメンバーの各パラメーターの型が、オーバーライドの対応するパラメーターに代入可能である。
- オーバーライドの戻り値の型が、オーバーライドされたメンバーの戻り値の型に代入可能である。
例
#次のコードは、パラメーター s (String) の型がパラメーター i (int) の型に代入可能ではないため、この診断を生成します。
dart
class A {
void m(int i) {}
}
class B extends A {
void m(String s) {}
}一般的な修正
#無効なメソッドがスーパークラスのメソッドをオーバーライドすることを意図している場合は、それに準拠するように変更してください。
dart
class A {
void m(int i) {}
}
class B extends A {
void m(int i) {}
}スーパークラスのメソッドをオーバーライドすることを意図していない場合は、名前を変更してください。
dart
class A {
void m(int i) {}
}
class B extends A {
void m2(String s) {}
}