首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectMapper维动态映射

ObjectMapper维动态映射
EN

Stack Overflow用户
提问于 2020-03-25 17:38:24
回答 1查看 49关注 0票数 1

我的项目面临一个问题:我有3个类(B、C、D),它们都扩展了另一个类(A),我希望有一个方法将字符串映射到这3个类中的一个。

我想出了以下解决方案:

代码语言:javascript
复制
public MySuperclass mapDynamicallyToObject(String stringObject, Object theClass) {
    return new ObjectMapper()
        .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true)
        .readerFor(theClass.getClass())
        .readValue(stringObject);
}

但它在运行时不起作用。

通过读取Oracle的文档,我认为通过使用对象的方法.getClass(),JVM将能够在运行时确定对象的真实性质并将字符串映射到它。

我哪里搞错了?你也面临过类似的问题吗?你是怎么接近它的?

顺便说一句,我只是在学习泛型,我希望在这里使用它,而不是使用"Object theClass",但是它不承认字母T是泛型的。

附注:如果有任何帮助的话,我正在使用Spring。

谢谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-07-15 12:57:32

已经有一段时间了,但解决办法如下:

代码语言:javascript
复制
public Object mapDynamicallyToObject(String stringObject, Class clazz) {
    return new ObjectMapper()
        .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true)
        .readerFor(clazz)
        .readValue(stringObject);
}

当调用该方法时,它需要进行转换。

代码语言:javascript
复制
MyClass myClass = (Myclass) this.mapDynamicallyToObject(theString, MyClass.class);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60854313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档