跳到主要內容

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