跳到主内容

return_in_generative_constructor

构造函数不能返回值。

描述

#

当一个生成式构造函数包含一个指定要返回值的 return 语句时,分析器会生成此诊断。生成式构造函数总是返回创建的对象,因此不能返回不同的对象。

示例

#

以下代码会产生此诊断,因为 return 语句包含表达式

dart
class C {
  C() {
    return this;
  }
}

常见修复方法

#

如果构造函数应创建新实例,则移除 return 语句或表达式

dart
class C {
  C();
}

如果构造函数不应创建新实例,则将其转换为工厂构造函数

dart
class C {
  factory C() {
    return _instance;
  }

  static C _instance = C._();

  C._();
}