public class Test {
public static void main(String[] args) {
Class<?> aliyun = ResType.of("aliyun").getType();
try {
Object obj = aliyun.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
class TencentData {
private String id;
}
class AliyunData {
private String id;
}
class Response<T> {
private T date;
public T getDate() {
return date;
}
public void setDate(T date) {
this.date = date;
}
}
interface Convert {
Class<?> getType();
}
enum ResType implements Convert {
ALIYUN("aliyun") {
@Override
public Class<?> getType() {
return Response<AliyunData>.class; //这句报错 ,怎么返回?
}
},
TENCENT("tencent") {
@Override
public Class<?> getType() {
return Response<TencentData>.class; //这句报错,怎么返回?
}
};
private final String depict;
ResType(String depict) {
this.depict = depict;
}
public String getDepict() {
return depict;
}
public static ResType of(String depict) {
for (ResType temp : ResType.values()) {
if (temp.getDepict().equals(depict)) {
return temp;
}
}
return null;
}
}
我需要返回Response的具体类型带着范型的,我该如何操作?
我需要的是类型,不需要实例。
这个只是demo,实际业务比这个复杂点,还有我不想绕过这个知识点从其它途径完成功能。