【发布时间】:2017-06-22 23:41:03
【问题描述】:
当我存储一个配置枚举时,这很容易,只要它类型绑定到一个特殊的枚举类型MyEnum:
void storeMyEnumValue(MyEnum value) {
String valueString = value.name();
// Store valueString somewhere
}
MyEnum loadMyEnumValue(MyEnum fallbackValue) {
// Load valueString from somewhere
try {
return MyEnum.valueOf(valueString);
} catch (Exception e) {
return fallbackValue;
}
}
但是,如果我想概括它并为任何类型的枚举提供一组 store/load 方法呢?
void storeAnyEnumValue(??? value) {
// The same as before
}
??? loadAnyEnumValue(??? defaultValue) {
// The same as before
}
如您所见,问题主要是如何处理“枚举常量类型的对象”。
【问题讨论】:
-
Enum 是所有枚举类型的基类,你可以使用它。
-
你在
MyEnum上调用一个静态方法,你必须注入它。 -
我想过这个,但是我会从
loadAnyEnumValue函数中得到一个Enum,不管我的参数是什么类型,还是我想错了? -
使用泛型,看我的回答
-
你接受了正确的:)