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 调用。