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

类‘List’无未命名构造函数:Flutter模型编写报错求助

解决Flutter模型中“类‘List’无未命名构造函数”报错

你遇到的报错是因为Dart新版本已废弃List<CardResults>()这种无参数构造List的写法,以下是两种修复方案:

方案一:使用可增长的空列表构造

将results = List<CardResults>();替换为:

results = List<CardResults>.empty(growable: true);

默认List.empty()创建的列表不可添加元素,加上growable: true才能正常调用add方法。

方案二:用map直接转换(更简洁)

跳过手动循环,直接通过map将JSON数组转换为CardResults列表:

results = (json['cardResults'] as List).map((v) => CardResults.fromJson(v)).toList();

如果需要处理json['cardResults']为null的情况,可以优化为:

results = (json['cardResults'] as List? ?? []).map((v) => CardResults.fromJson(v)).toList();

修复后的完整代码

import 'package:flutter/material.dart';

class CardModel {
  late List<CardResults> results;

  CardModel({required this.results});

  CardModel.fromJson(Map<String, dynamic> json) {
    // 方案一实现
    if (json['cardResults'] != null) {
      results = List<CardResults>.empty(growable: true);
      json['cardResults'].forEach((v) {
        results.add(CardResults.fromJson(v));
      });
    }

    // 或者替换为方案二(二选一即可)
    // results = (json['cardResults'] as List? ?? []).map((v) => CardResults.fromJson(v)).toList();
  }
}

内容的提问来源于stack exchange,提问作者SEYRAM EMMANUEL AGBANYO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:39