【问题标题】:Can't create class instances via hard coded data无法通过硬编码数据创建类实例
【发布时间】:2020-10-28 07:05:39
【问题描述】:

尝试创建实例以便通过小部件树正确传递数据,我从字符串/整数列表开始,并将创建一个实例列表,其中子列表的每个索引都存储在实例中.将硬编码数据手动传递到类初始化程序中很麻烦,我的数据已经存储在一个列表中,我尝试过映射和循环列表,但似乎没有任何效果。如何从现有的硬编码数据结构自动创建类实例?

我最终只是将列表复制到 python 并运行一个脚本来创建在 dart 中表示正在初始化的类的字符串,从那里我将脚本粘贴到 dart 中。但将来我想从硬编码数据转到类实例而不切换语言。下面是我在 Flutter 中尝试过的一个示例。

`
    Class Item{
    final String x;
    final int mula;
    Item(this.x, this.y)
    }

    var data = [["hog", 22]["meow", 55]];

    List<Item> = data.map((item)=> Item(item[0],item[1])).toList();

` 应该给出输出 [Item(hog,22) etc.

【问题讨论】:

    标签: list class flutter dart instance


    【解决方案1】:

    您的代码有一些语法错误,例如 Class(大写 C),而不是 class,并且您的 data 列表中的 2 个子列表之间也缺少逗号,并且类变量没有与您在构造函数中传递的内容相匹配。试试下面的代码。您可以在DartPad 进行测试。

    class Item {
      final String x;
      final int y;
      Item(this.x, this.y);
    }
    
    void main() {
    
      var data = [
        ["hog", 22],
        ["meow", 55]
      ];
    
      List<Item> listItem = [];
      
      data.forEach((item) {
        listItem.add(Item(item[0], item[1]));
      });
    
      print(listItem[0].x);
    
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2014-02-02
      • 1970-01-01
      相关资源
      最近更新 更多