内容

unnecessary_overrides

不要重写方法以对具有相同参数的超级方法调用进行操作。

此规则自 Dart 2.0 起可用。

规则集: 核心推荐Flutter

此规则有 快速修复 可用。

详情

#

不要重写方法以对具有相同参数的超级方法调用进行操作。

错误示例

dart
class A extends B {
  @override
  void foo() {
    super.foo();
  }
}

正确示例

dart
class A extends B {
  @override
  void foo() {
    doSomethingElse();
  }
}

在以下情况下,重写成员是有效的

  • 如果类型(返回类型或参数类型)与超级成员完全不同,
  • 如果向其中一个参数添加了 covariant 关键字,
  • 如果成员上有文档注释,
  • 如果成员具有除 @override 之外的注释,
  • 如果成员没有用 @protected 注释,而超级成员则有。

noSuchMethod 是一种特殊方法,此规则不检查它。

用法

#

要启用 unnecessary_overrides 规则,请在您的 analysis_options.yaml 文件中添加 unnecessary_overrideslinter > rules

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_overrides