Java泛型捕获
我有一些这样的代码。 负载是Java对象 DSRecommensions和LSRecommensions扩展了RecEntry objectMapper和TypeReference来自jackson,RecEntry是我自己的类 有效载荷只是一个重新进入的列表Java泛型捕获,java,Java,我有一些这样的代码。 负载是Java对象 DSRecommensions和LSRecommensions扩展了RecEntry objectMapper和TypeReference来自jackson,RecEntry是我自己的类 有效载荷只是一个重新进入的列表 public enum RecSourceEnum{ CSELL(DSL.class), LS(lsc.class); 私人期末班我不确定这是否真的是你想要的,但我还是决定发布我的答案 主类 public static void main
public enum RecSourceEnum{
CSELL(DSL.class),
LS(lsc.class);
私人期末班我不确定这是否真的是你想要的,但我还是决定发布我的答案
主类
public static void main(String[] args) throws IOException {
String source = "CSELL";
Class<? extends Alphabet> clazz = RecSourceEnum.valueOf(source.toUpperCase()).getRecEntry();
Alphabet abc = new Alphabet();
Alphabet val = convertFromObj(abc, clazz);
System.out.println(clazz);
System.out.println("A: " + val.getClass());
}
private static <T extends Alphabet> T convertFromObj(Object payload, Class<T> clazz) throws IOException {
ObjectMapper om = new ObjectMapper();
return om.convertValue(payload, clazz);
}
class Alphabet{
public String name;
}
class A extends Alphabet{
}
class B extends Alphabet{
}
输出
class test.A
A: class test.A
你有一个列表
,你想给它分配一个列表
。X和Y之间存在继承的事实并不意味着列表
和列表
之间存在继承。
enum RecSourceEnum {
CSELL(A.class),
LS(B.class);
private final Class<? extends Alphabet> recEntry;
<T extends Alphabet> RecSourceEnum(Class<T> recEntry) {
this.recEntry = recEntry;
}
public Class<? extends Alphabet> getRecEntry() {
return recEntry;
}
}
class Alphabet{
public String name;
}
class A extends Alphabet{
}
class B extends Alphabet{
}
class test.A
A: class test.A