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

启用空安全时默认List构造函数不可用报错该如何解决?

报错原因

Dart 2.12及以上版本开启空安全后,默认的List()构造器已被官方废弃,该构造器默认会生成填充null元素的列表,不符合空安全的类型校验规则,因此编译时会抛出该错误。

相关报错截图:
报错截图1
报错截图2

解决方案

根据你的实际使用场景选择对应替换写法即可:

  • 场景1:创建空的可增长列表(你实现YouTube频道视频导入功能,大概率是该场景,用来存储拉取到的视频数据)
    原错误写法示例:
    List<Video> videoList = List();
    
    直接替换为字面量写法即可:
    List<Video> videoList = [];
    
    也可使用官方标准构造器写法:
    List<Video> videoList = List.empty(growable: true);
    
  • 场景2:创建固定长度的列表
    原错误写法示例:
    // 要创建长度为10的int类型列表
    List<int> countList = List(10);
    
    替换为List.filled写法,第二个参数传入对应类型的默认填充值:
    // 非空类型填入对应类型的默认值
    List<int> countList = List.filled(10, 0);
    // 可空类型可以传入null作为填充值
    List<int?> nullableCountList = List.filled(10, null);
    
  • 场景3:按自定义规则生成指定长度的列表
    使用List.generate方法:
    // 生成长度为5,元素值为索引2倍的列表
    List<int> numList = List.generate(5, (index) => index * 2);
    

内容的提问来源于stack exchange,提问作者Pimpi Rimpà

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:15:03