我试图在flutter中定义一个类型的联合作为变量的类型。我想实现这样的目标:
class Type1 {
String attr1;
Map<String, String> attr2;
Type1();
}
class Type2 {
String attr1;
String attr2;
Type2();
}
Union2<Type1, Type2> myInstance;
或
Union2<String, int> stringOrInt;
我不想使用dynamic
。
我发现了一个旧的软件包称为union,但它是停产。你知道还有什么方法可以达到我的目的吗?
非常感谢你的回答!
PS:作为参考,我需要Union类型来创建Hive数据集适配器(框可能有不同的对象值)。
3条答案
按热度按时间mtb9vblg1#
您可以使用freezed,它是用于数据类/联合/模式匹配/克隆的代码生成器。
这就是我们如何用freezed写union。
开始使用冷冻,你不会后悔的。这是一个很棒的包。
类型为
Data
、Loading
和Error
。或者通过模式匹配,
bzzcjhmw2#
Tuple是你需要的:https://pub.dev/packages/tuple
用法如下:
hzbexzde3#
你可以使用dart3中引入的密封类,也可以使用Either package