无法通过硬编码数据创建类实例
Posted
技术标签:
【中文标题】无法通过硬编码数据创建类实例【英文标题】: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.
【问题讨论】:
【参考方案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);
【讨论】:
以上是关于无法通过硬编码数据创建类实例的主要内容,如果未能解决你的问题,请参考以下文章