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

Flutter空安全升级后TypeError:int无法转为List<int>求助

解决Flutter空安全升级后的List类型转换错误

首先,你尝试的chosenAnswers = numberOfQuestions as List<int>完全错误——numberOfQuestions是整数类型,不可能强转为List<int>,这必然触发类型转换错误,直接放弃这种写法。

原代码chosenAnswers = List<int>(numberOfQuestions)在空安全环境下的问题在于:
空安全生效后,List<int>要求列表中的每个元素必须是非空的int值,但List<int>(length)这种旧写法会创建一个固定长度的列表,元素默认初始化为null,这和List<int>的非空约束冲突,进而引发类型错误。

正确的初始化方式

根据你的需求(存储对应题目的选择答案),可以用以下两种方式初始化列表:

  • 固定默认值初始化:如果需要给每个位置设置一个默认值(比如用-1表示未选择答案),用filled方法:
    chosenAnswers = List<int>.filled(numberOfQuestions, -1);
    
  • 动态生成初始化:如果需要根据索引生成初始值,用generate方法:
    chosenAnswers = List<int>.generate(numberOfQuestions, (index) => 0);
    

额外检查点

  1. 确认chosenAnswers的变量类型声明正确,必须是List<int>而非int或其他类型:
    // 正确的类型声明
    List<int> chosenAnswers = [];
    
  2. 确保numberOfQuestions已经完成空安全检查,是一个非空的int值,避免因null导致的初始化失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:12:54