跳到主要内容

invalid_modifier_on_constructor

修饰符“{0}”不能应用于构造函数的函数体。

说明

#

当构造函数的函数体前缀使用了以下修饰符之一时,分析器会产生此诊断信息:asyncasync*sync*。构造函数的函数体必须是同步的。

示例

#

以下代码会产生此诊断信息,因为类 C 的构造函数函数体被标记为 async

dart
class C {
  C() async {}
}

常见修复方法

#

如果构造函数可以是同步的,请移除该修饰符

dart
class C {
  C();
}

如果构造函数不能是同步的,请改用静态方法来创建实例

dart
class C {
  C();
  static Future<C> c() async {
    return C();
  }
}