这个问题是九年前javascript的问题,但我找不到dart的答案。我尝试用enum实现json序列化。有一些库的解决方案,但我想回答dart逻辑。
enum GenderType{
Male,
Female,
NonBinary
}
T? getEnum<T>(String key) {
return (T as Enum).values[_pref?.getInt(key)];
}
我想这样写,虽然我可以调用GenderType. values,但我不能将它们称为T. values。
1条答案
按热度按时间xlpyo6sf1#
你不能这样做。首先
Enum
类不包含values
列表。第二个原因是枚举中的values
是一个静态字段,你不能调用泛型类型上的静态方法或字段,即使你将它们转换为特定类型。如果你想创建
T? getEnum<T>(String key)
,你可以实现它,但是用一种糟糕的方式。所以这只是一个例子:但最好对每种类型使用单独的方法。