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);
}