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();
}