gpt4 book ai didi

dart - 从 map 创建对象-Dart

转载 作者:行者123 更新时间:2023-12-03 02:57:08 25 4
gpt4 key购买 nike

我有一个具有大量属性的类,这些类映射到一些我已经解析为其他位置的Map对象的JSON数据。我希望能够通过传入此 map 来实例化一个类:

class Card {
String name, layout, mana_cost, cmc, type, rarity, text, flavor, artist,
number, power, toughness, loyalty, watermark, border,
timeshifted, hand, life, release_date, starter, original_text, original_type,
source, image_url, set, set_name, id;

int multiverse_id;

List<String> colors, names, supertypes, subtypes, types, printings, variations, legalities;
List<Map> foreign_names, rulings;

// This doesn't work
Card.fromMap(Map card) {
for (var key in card.keys) {
this[key] = card[key];
}
}
}

我希望不必手动分配所有内容。有没有办法做我想做的事?

最佳答案

我认为用语言本身并没有什么好方法。
反射将是一种方法,但是在浏览器中避免使用它是一个好习惯,因为它可能导致代码膨胀。

reflectable 软件包可以限制反射对尺寸的负面影响,并提供几乎相同的功能。

我会使用代码生成方法,在这种方法中,您将使用诸如build,source_gen之类的工具来生成分配值的代码。

built_value是使用该方法的软件包。这甚至可以直接用于您的用例。

关于dart - 从 map 创建对象-Dart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com