跳到主要內容

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