unnecessary_overrides
不必要的重写。
描述
#当实例成员重写继承的成员,但仅使用完全相同的参数调用被重写的成员时,分析器会生成此诊断信息。
示例
#以下代码会生成此诊断信息,因为方法 D.m
除了调用被重写的方法外,没有做其他任何事情
dart
class C {
int m(int x) => x;
}
class D extends C {
@override
int m(int x) => super.m(x);
}
常见修正
#如果方法应该做的不仅仅是被重写方法所做的事情,那么实现缺失的功能
dart
class C {
int m(int x) => x;
}
class D extends C {
@override
int m(int x) => super.m(x) + 1;
}
如果应通过更改返回类型或一个或多个参数类型、使其中一个参数为 covariant
、添加文档注释或附加注解来修改被重写的方法,请更新代码
dart
import 'package:meta/meta.dart';
class C {
int m(int x) => x;
}
class D extends C {
@mustCallSuper
@override
int m(int x) => super.m(x);
}
如果重写方法没有改变或增强代码的语义,则将其移除
dart
class C {
int m(int x) => x;
}
class D extends C {}