跳到主内容

redirect_to_non_class

名称“{0}”不是类型,不能用于重定向构造函数。

描述

#

实现工厂构造函数的一种方法是通过引用构造函数的名称来重定向到另一个构造函数。当重定向到构造函数之外的其他内容时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为 f 是一个函数

dart
C f() => throw 0;

class C {
  factory C() = f;
}

常见修复

#

如果构造函数未定义,则定义它,或者用已定义的构造函数替换它。

如果构造函数已定义但定义它的类不可见,则可能需要添加导入。

如果您尝试返回函数返回的值,则重写构造函数以从构造函数体中返回值

dart
C f() => throw 0;

class C {
  factory C() => f();
}