You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart开启空安全后默认List构造函数不可用报错是什么原因?

报错原因

Dart 2.12及以上版本启用空安全特性后,默认的指定长度List构造函数被官方移除,核心原因是:

  • 旧版本的List(length)构造函数创建的指定长度列表,所有初始元素默认值为null
  • 空安全规则要求非可空类型的变量、集合元素不能为null,该旧构造函数无法满足空安全的类型校验逻辑,因此被禁用

对应解决方案

根据你的业务需求可以选择不同的替代写法:

  • 如果你需要创建元素可空、长度固定的列表,写法如下:
    final resultBytes = List<int?>.filled(28 * 28, null);
    
  • 如果你需要创建非空元素、长度固定的列表(比如所有元素初始值为0),写法如下:
    final resultBytes = List<int>.filled(28 * 28, 0);
    
  • 如果你需要创建可动态增长的空列表,写法如下:
    final resultBytes = <int>[];
    

内容的提问来源于stack exchange,提问作者Anim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:33:00