跳到主要内容

undefined_super_member

(之前称为 undefined_super_method

Getter '{0}' 未在 '{1}' 的超类中定义。

方法 '{0}' 未在 '{1}' 的超类中定义。

运算符 '{0}' 未在 '{1}' 的超类中定义。

Setter '{0}' 未在 '{1}' 的超类中定义。

描述

#

当使用 super 引用继承成员(方法、getter、setter 或运算符),但在超类链中没有同名成员时,分析器会产生此诊断。

示例

#

以下代码会产生此诊断,因为 Object 中未定义名为 n 的方法

dart
class C {
  void m() {
    super.n();
  }
}

以下代码会产生此诊断,因为 Object 中未定义名为 g 的 getter

dart
class C {
  void m() {
    super.g;
  }
}

常见修复方法

#

如果您打算调用的继承成员名称不同,请确保调用的成员名称与继承成员名称一致。

如果您打算调用的成员定义在同一个类中,请移除 super.

如果该成员未定义,请将其添加到其中一个超类中,或移除该调用。