invalid_non_virtual_annotation
注解 '@nonVirtual' 只能应用于具体实例成员。
描述
#当在非类、mixin 或枚举成员的声明上找到 nonVirtual
注解,或者该成员不是具体实例成员时,分析器会产生此诊断。
示例
#以下代码会产生此诊断,因为注解位于类声明上,而不是类内部的成员上
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() {}
}
常见修复方法
#如果声明不是类、mixin 或枚举的成员,则移除该注解
dart
class C {}
如果该成员预期是具体实例成员,则使其成为具体实例成员
dart
import 'package:meta/meta.dart';
abstract class C {
@nonVirtual
void m() {}
}
如果该成员预期不是具体实例成员,则移除该注解
dart
abstract class C {
static void m() {}
}