const_constructor_with_non_const_super
常量构造函数不能调用“{0}”的非常量父类构造函数。
描述
#当标记为 const
的构造函数调用其父类中未标记为 const
的构造函数时,分析器会生成此诊断。
示例
#以下代码会产生此诊断,因为 B
中的 const
构造函数调用了类 A
中的 nonConst
构造函数,而父类构造函数不是 const
构造函数:
dart
class A {
const A();
A.nonConst();
}
class B extends A {
const B() : super.nonConst();
}
常见修复
#如果当前调用的父类构造函数并非必需,则调用父类中的常量构造函数。
dart
class A {
const A();
A.nonConst();
}
class B extends A {
const B() : super();
}
如果当前构造函数的调用是必需的,并且您可以修改它,则在父类中的构造函数前添加 const
。
dart
class A {
const A();
const A.nonConst();
}
class B extends A {
const B() : super.nonConst();
}
如果当前构造函数的调用是必需的,并且您无法修改它,则从子类中的构造函数前移除 const
。
dart
class A {
const A();
A.nonConst();
}
class B extends A {
B() : super.nonConst();
}