跳到主要內容

unnecessary_no_such_method

不必要的 'noSuchMethod' 宣告。

描述

#

當聲明瞭 noSuchMethod,且該宣告唯一做的事情是呼叫被覆蓋的宣告,並且被覆蓋的宣告不是 Object 中的宣告時,分析器會生成此診斷。

覆蓋 ObjectnoSuchMethod 的實現(無論該實現做什麼)會向分析器發出訊號,表明不應對在該類中未實現的任何繼承的抽象方法進行標記。即使覆蓋實現是從超類繼承的,這也會起作用,因此在子類中再次宣告它是沒有價值的。

示例

#

以下程式碼會產生此診斷,因為 AnoSuchMethod 的宣告使得 BnoSuchMethod 的宣告成為不必要的

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