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

Dart使用默认List构造函数报错,如何正确声明定义List变量?

报错原因

Dart 2.12版本引入空安全机制后,旧版默认的List(int length)构造函数已被正式移除。该构造函数会生成包含指定数量null值的列表,和空安全规则下的非空类型声明不兼容,因此编译器会直接抛出错误要求替换构造函数。

适配方案

最小改动适配你的现有代码

按照报错提示使用List.filled构造函数即可,你只需要修改第一行列表声明代码:

void main() {
  // 声明长度为5的字符串类型列表,初始值统一填充为空字符串
  var urunler = List<String>.filled(5, '');
  urunler[0] = "Laptop";
  urunler[1] = "Mouse";
  urunler[2] = "Keyboard";
  urunler[3] = "Monitor";
  urunler[4] = "Mic";

  print(urunler);
}

其他常用List声明方式(按需选择)

  • 动态可变长度列表:不需要预先指定长度,支持动态增删元素
    // 声明空的字符串类型列表
    var urunler = <String>[];
    // 单个添加元素
    urunler.add("Laptop");
    // 批量添加元素
    urunler.addAll(["Mouse", "Keyboard", "Monitor", "Mic"]);
    
  • 字面量直接初始化:如果提前知道所有列表元素,直接使用字面量声明最简洁
    var urunler = ["Laptop", "Mouse", "Keyboard", "Monitor", "Mic"];
    
  • 可空类型固定长度列表:如果需要允许列表元素为null,可声明可空类型后用null填充
    var urunler = List<String?>.filled(5, null);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:36:02