無効な非仮想アノテーション
'@nonVirtual' アノテーションは、具体的なインスタンスメンバーにのみ適用できます。
説明
#nonVirtual アノテーションが、クラス、ミックスイン、または enum のメンバー以外の宣言、あるいはメンバーが具体的なインスタンスメンバーでない場合に、アナライザーはこの診断を生成します。
例
#次のコードは、アノテーションがクラス内のメンバーではなくクラス宣言にあるため、この診断を生成します。
dart
import 'package:meta/meta.dart';
@nonVirtual
class C {}次のコードは、メソッド m が抽象メソッドであるため、この診断を生成します。
dart
import 'package:meta/meta.dart';
abstract class C {
@nonVirtual
void m();
}次のコードは、メソッド m が静的メソッドであるため、この診断を生成します。
dart
import 'package:meta/meta.dart';
abstract class C {
@nonVirtual
static void m() {}
}一般的な修正
#宣言がクラス、ミックスイン、または enum のメンバーでない場合は、アノテーションを削除してください。
dart
class C {}メンバーを具体的なインスタンスメンバーにする場合は、そのようにしてください。
dart
import 'package:meta/meta.dart';
abstract class C {
@nonVirtual
void m() {}
}メンバーを具体的なインスタンスメンバーにする意図がない場合は、アノテーションを削除してください。
dart
abstract class C {
static void m() {}
}