Java 我是否可以将类作为enum';s构造函数参数,然后将其用作方法中的返回类型?
我的目标是制作如下方法:Java 我是否可以将类作为enum';s构造函数参数,然后将其用作方法中的返回类型?,java,generics,enums,Java,Generics,Enums,我的目标是制作如下方法: Map dataMap=newhashmap(); 已通过num someGetterMethod(MyEnum en)访问的公共类{ 字符串键=en.keyInMap; 类别clazz=en.type; 对象值=dataMap.get(键); //此方法应返回“value”,但已从我的枚举强制转换为类型 } 枚举如下所示 enum MyEnum{ EXAMP(“示例”,Boolean.class); 字符串键映射; 班级类型; MyEnum(字符串键映射,类类型){
Map dataMap=newhashmap();
已通过num someGetterMethod(MyEnum en)访问的公共类{
字符串键=en.keyInMap;
类别clazz=en.type;
对象值=dataMap.get(键);
//此方法应返回“value”,但已从我的枚举强制转换为类型
}
枚举如下所示
enum MyEnum{
EXAMP(“示例”,Boolean.class);
字符串键映射;
班级类型;
MyEnum(字符串键映射,类类型){
this.keyInMap=keyInMap;
this.type=type;
}
}
然后这样做:
Boolean v = someGetterMethod(MyEnum.EXAMP);
在java中可能吗?您不能使用枚举来实现这一点 但您可以使用非公开实例化类来实现这一点
class MyNotEnum<T> {
static final MyNotEnum EXAMP = new MyNotEnum<>("example", Boolean.class);
String keyInMap;
Class<T> type;
private MyEnum(String keyInMap, Class<T> type){
this.keyInMap = keyInMap;
this.type = type;
}
}
public <T> T someGetterMethod(MyNotEnum<T> en){
String key = en.keyInMap;
Class<T> clazz = en.type;
Object value = dataMap.get(key);
return clazz.cast(value);
}