unnecessary_overrides
不要覆盖方法来调用具有相同参数的超类方法。
详情
#不要覆盖方法来调用具有相同参数的超类方法。
差
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
文件中的 linter > rules 下添加 unnecessary_overrides
analysis_options.yaml
yaml
linter:
rules:
- unnecessary_overrides
如果你使用的是 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 unnecessary_overrides: true
analysis_options.yaml
yaml
linter:
rules:
unnecessary_overrides: true