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
相关产品推荐
相关产品推荐

