跳到主要内容

const_deferred_class

延迟加载的类不能用 'const' 创建。

描述

#

当一个从使用延迟导入 (deferred import) 方式导入的库中的类被用来创建一个 const 对象时,分析器会生成此诊断。常量在编译时求值,而延迟库中的类在编译时不可用。

欲了解更多信息,请参阅延迟加载库

示例

#

以下代码会产生此诊断,因为它尝试从一个延迟库创建一个类的 const 实例

dart
import 'dart:convert' deferred as convert;

const json2 = convert.JsonCodec();

常见修复

#

如果不需要该对象是常量,则更改代码以创建非常量实例

dart
import 'dart:convert' deferred as convert;

final json2 = convert.JsonCodec();

如果该对象必须是常量,则从 import 指令中移除 deferred

dart
import 'dart:convert' as convert;

const json2 = convert.JsonCodec();