unnecessary_no_such_method
不必要的 'noSuchMethod' 声明。
描述
#当声明了 noSuchMethod
,且该声明唯一做的事情是调用被覆盖的声明,并且被覆盖的声明不是 Object
中的声明时,分析器会生成此诊断。
覆盖 Object
的 noSuchMethod
的实现(无论该实现做什么)会向分析器发出信号,表明不应对在该类中未实现的任何继承的抽象方法进行标记。即使覆盖实现是从超类继承的,这也会起作用,因此在子类中再次声明它是没有价值的。
示例
#以下代码会产生此诊断,因为 A
中 noSuchMethod
的声明使得 B
中 noSuchMethod
的声明成为不必要的
dart
class A {
@override
dynamic noSuchMethod(x) => super.noSuchMethod(x);
}
class B extends A {
@override
dynamic noSuchMethod(y) {
return super.noSuchMethod(y);
}
}
常见修复方法
#移除不必要的声明
dart
class A {
@override
dynamic noSuchMethod(x) => super.noSuchMethod(x);
}
class B extends A {}