invalid_factory_name_not_a_class
工厂构造函数的名称必须与其直接所在的类名称相同。
描述
#当工厂构造函数的名称与其所在类名称不同时,分析器会生成此诊断信息。
示例
#以下代码会生成此诊断信息,因为工厂构造函数的名称(A
)与其所在类(C
)的名称不同
dart
class A {}
class C {
factory A() => throw 0;
}
常见修复方法
#如果工厂返回的是其所在类的实例,并且你打算让它成为一个无名工厂构造函数,那么请重命名该工厂
dart
class A {}
class C {
factory C() => throw 0;
}
如果工厂返回的是其所在类的实例,并且你打算让它成为一个命名工厂构造函数,那么请在工厂构造函数的名称前加上其所在类的名称
dart
class A {}
class C {
factory C.a() => throw 0;
}
如果工厂返回的是不同类的实例,那么请将该工厂移动到那个类中
dart
class A {
factory A() => throw 0;
}
class C {}
如果工厂返回的是不同类的实例,但你无法修改那个类或不想移动该工厂,那么请将其转换为一个静态方法
dart
class A {}
class C {
static A a() => throw 0;
}