【问题标题】:Getting Class names from object从对象中获取类名
【发布时间】:2020-01-15 18:40:55
【问题描述】:

我目前有代码将 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.

标签: java class jackson


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 2017-04-25
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    相关资源
    最近更新 更多