发布于 2020-02-29 06:11:26
这在Dart中是不可能的。我在将枚举属性转换为SQLite数据库(只能保存其数字类型)时遇到了同样的问题,因此我需要enum.values
将整数“解析”为枚举,并需要enum.index
将枚举值转换为整型。
唯一可能的方法是将枚举转换为动态或传递枚举值。
示例:
T mapToEnum<T>(List<T> values, int value) {
if (value == null) {
return null;
}
return values[value];
}
dynamic enumToMap<T>(List<T> values, T value) {
if (value == null) {
return null;
}
return values.firstWhere((v) => v == value);
}
所以我可以像这样使用:
final SomeEnum value = SomeEnum.someValue;
final int intValue = enumToMap(SomeEnum.values, value);
final SomeEnum enumValue = mapToEnum(SomeEnum.values, value.index);
https://stackoverflow.com/questions/59362403
复制相似问题