無効な_オーバーライド_非_仮想_メンバー
'{1}' で非仮想として宣言されたメンバー '{0}' は、サブクラスでオーバーライドできません。
説明
#この診断は、クラス、ミックスイン、または列挙型のメンバーが @nonVirtual アノテーションが付いたメンバーをオーバーライドする場合に、アナライザーによって生成されます。
例
#次のコードは、B のメソッド m が A のメソッド m をオーバーライドしており、A のメソッド m に @nonVirtual アノテーションが付いているため、この診断を生成します。
dart
import 'package:meta/meta.dart';
class A {
@nonVirtual
void m() {}
}
class B extends A {
@override
void m() {}
}一般的な修正
#スーパークラスのメソッドのアノテーションが正しい場合(スーパークラスのメソッドはオーバーライドを意図していない)、オーバーライドするメソッドを削除または名前変更してください。
dart
import 'package:meta/meta.dart';
class A {
@nonVirtual
void m() {}
}
class B extends A {}スーパークラスのメソッドがオーバーライドを意図している場合は、@nonVirtual アノテーションを削除してください。
dart
class A {
void m() {}
}
class B extends A {
@override
void m() {}
}