跳到主要内容

invalid_factory_method_impl

工厂方法 '{0}' 未返回新分配的对象。

描述

#

当标记有 factory 注解的方法未返回新分配的对象时,分析器会产生此诊断信息。

示例

#

以下代码会产生此诊断信息,因为方法 createC 返回的是字段的值,而不是 C 的新创建实例:

dart
import 'package:meta/meta.dart';

class Factory {
  C c = C();

  @factory
  C createC() => c;
}

class C {}

常见修复方法

#

更改方法以返回返回类型的新创建实例。

dart
import 'package:meta/meta.dart';

class Factory {
  @factory
  C createC() => C();
}

class C {}