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

Flutter报错_CompactLinkedHashSet不是List<Question>子类型转换错误如何解决

错误原因

错误核心是不合法的类型强转操作,Dart中Set和List是完全独立的集合类型,无法直接强制转换:

  • 你声明questionBank时变量类型指定为List<Question>,但实际赋值时使用大括号{}包裹元素,Dart中无键值对的{}结构默认会被识别为Set类型
  • 后续追加的as List<Question>强转语句不合法,直接触发了_CastError类型转换异常
修复方案

仅需要修改questionBank的定义语句:将包裹元素的大括号{}替换为List专用的方括号[],同时删除多余的强制类型转换代码即可,修改后代码如下:

List<Question> questionBank = [
  Question(q: 'Moon Color is gray',a:false),
  Question(q: 'Independence Day of pakistan was 1947',a:true),
  Question(q: 'Tesla was the owner of Starlink company',a:false),
];

额外优化提示:当前代码在答完所有题目后继续点击按钮会触发数组下标越界崩溃,可在每次自增questionNumber前增加questionNumber < questionBank.length - 1的判断逻辑,避免越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:15:03