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