【发布时间】:2016-02-11 10:24:50
【问题描述】:
我需要在运行时使用泛型将 json 字符串解组为 Class。比如:
String classname = "this.is.a.class.name.read.at.runtime";
Class cls = Class.forName(classname);
mapper.readValue(jsonPayload, new TypeReference<GenericClass<cls>>() {});
显然,上述方法行不通,我找不到好的解决方案。
【问题讨论】:
-
而
mapper.readValue(jsonPayload, cls);不起作用? -
不,因为我的课程是 GenericClass
,而不是 cls。 -
所以您正在尝试解组
TypeReference的实例,该实例使用GenericClass参数化,而GenericClass使用某种类型进行参数化?如果那是您想要实现的目标,那么我认为这是不可能的。泛型类的类型信息是一个编译时概念。但是杰克逊需要在运行时解组的类型信息。
标签: java json generics jackson runtime