Java泛型类型灵活性

Java泛型类型灵活性,java,generics,enums,Java,Generics,Enums,假设我有一个枚举,“数据” 公共枚举数据{ 名字(String.class,“John”); 私有最终类defaultClass; 私有最终对象数据; 数据(类类别、对象数据){ this.defaultClass=clazz; this.defaultData=数据; } 公共类getDataClass(){ 返回此.defaultClass; } } 是否可以创建一个基于传递的数据枚举的getDataClass()响应获取其返回类型的方法?例如: //这段代码显然不起作用,这只是另一种显示

假设我有一个枚举,“数据”

公共枚举数据{
名字(String.class,“John”);
私有最终类defaultClass;
私有最终对象数据;
数据(类类别、对象数据){
this.defaultClass=clazz;
this.defaultData=数据;
}
公共类getDataClass(){
返回此.defaultClass;
}
}
是否可以创建一个基于传递的数据枚举的getDataClass()响应获取其返回类型的方法?例如:

//这段代码显然不起作用,这只是另一种显示方式。
public[data.getDataClass()]getData(数据){
//返回数据。
}

enum和泛型混合不好有多种原因,其中最重要的原因是Java enum类从一开始就已经是泛型的:类
enum数据
相当于
类enum
。没有一个简单的类型安全的方法来做你想做的事情。该死,那会有点烦人。不过还是谢谢你。至少我可以验证返回的对象是否是getData方法中的正确类型。在这个问题中,有人建议使用类来代替“假枚举”。也许这样行吗?在出现枚举之前,存在类型安全枚举。但是OP想要的是扭曲的-一个在不同类型上通用的类(或枚举),每个常量都不同。这将强制在
类中使用通配符,而不是泛型参数
,这将限制类型标记可以为您做什么。