跳到主要内容

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() {}
}