non_generative_constructor
期望的是生成式建構函式 '{0}',但找到了工廠建構函式。
描述
#當建構函式的初始化列表呼叫超類的建構函式,並且被呼叫的建構函式是工廠建構函式時,分析器會生成此診斷資訊。在初始化列表中只能呼叫生成式建構函式。
示例
#下面的程式碼會生成此診斷資訊,因為呼叫建構函式 super.one() 是呼叫了工廠建構函式
dart
class A {
factory A.one() = B;
A.two();
}
class B extends A {
B() : super.one();
}常見修復方法
#將 super 呼叫更改為呼叫生成式建構函式
dart
class A {
factory A.one() = B;
A.two();
}
class B extends A {
B() : super.two();
}如果生成式建構函式是無名建構函式,並且沒有傳遞任何引數,則可以刪除 super 呼叫。