跳到主要内容

const_constructor_with_field_initialized_by_non_const

无法定义 'const' 构造函数,因为字段 '{0}' 是用非常量值初始化的。

描述

#

当构造函数带有 const 关键字,但类中的某个字段初始化为一个非常量值时,分析器会生成此诊断消息。

示例

#

以下代码会产生此诊断消息,因为字段 s 初始化为一个非常量值

dart
String x = '3';
class C {
  final String s = x;
  const C();
}

常见解决方法

#

如果字段可以初始化为常量值,则将初始化器更改为常量表达式

dart
class C {
  final String s = '3';
  const C();
}

如果字段不能初始化为常量值,则从构造函数中移除 const 关键字

dart
String x = '3';
class C {
  final String s = x;
  C();
}