从对象获取类名



我目前有代码将 JSON 字符串映射到 API 的类,但是我需要代码将 JSON 映射到运行时由类名给出的不同类,而不是一个硬编码的类名。

这是我当前的代码:

ObjectMapper aObjectMapper = new ObjectMapper();
aClass request = aObjectMapper.readValue(String, aClass.class);

哪个工作正常。

现在不是aClass,我希望能够映射到任何泛型类名,但是尝试类似

Class theRandomClass = theRandomClass.class; 
theRandomClass.getClass() request = aObjectMapper.readValue(String, 
theRandomClass.getClass()) //gives an error

知道如何解决这个问题吗?非常感谢。

Class theRandomClass = theRandomClass.class;

java.lang.Class对象分配给theRandomClass

这意味着

aObjectMapper.readValue(String, theRandomClass.getClass())

将尝试将 JSON 字符串反序列化为java.lang.Class对象。如果不清楚问题是什么,那么请注意,程序不能只是创建java.lang.Class实例,因此 Jackson 将无法反序列化字符串。

你需要的是

aObjectMapper.readValue(String, theRandomClass)

最新更新