第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Jackson ObjectMapper 僅接口已知

Jackson ObjectMapper 僅接口已知

呼如林 2023-06-21 16:14:30
如果我想將一些 JSON 讀入一個對象,并且我有接口,但必須使用 Spring 上下文來獲取實現(xiàn)類,我需要使用 SimpleAbstractTypeResolver 將接口映射到實現(xiàn)。到目前為止,如果我提前知道哪些接口需要哪些實現(xiàn),那就太好了。但是,如果該接口具有返回其他接口的方法(并且可能遞歸地向下行),并且我不一定提前知道,我想我可以使用反射來弄清楚。所以這就是我想出的,但編譯器不喜歡該行resolver.addMapping(method.getReturnType(), method.getReturnType()); , 說它不適用于這些論點。我很確定這些類型適合該方法——對于如何實現(xiàn)這一點有什么想法嗎?        for (Method method : clazz.getMethods()) {        if (method.getReturnType().isInterface() && method.getName().startsWith("get")) {            // getter method returns an interface so find its implementation class            Class beanClass = context.getBean(method.getReturnType()).getClass();            if (clazz.isAssignableFrom(beanClass)) {                resolver.addMapping(method.getReturnType(), method.getReturnType());                mapInterfaces(objectMapper, clazz, resolver);            }        }    }
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

可能您需要檢查您的類型。


我的猜測如下:


resolver.addMapping(method.getReturnType(), beanClass);

(將第二個參數(shù)method.getReturnType()替換為beanClass)


或者作為替代方案(代碼對我來說并不完全清楚,抱歉)


resolver.addMapping(clazz, beanClass);

您應該將接口和實現(xiàn)放入 addMapping() 中。


例子:


interface ITest{};


class TestImpl implements ITest {}


usage:

resolver.addMapping(ITest.class, TestImpl.class);


查看完整回答
反對 回復 2023-06-21
?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

可能您需要檢查您的類型。

我的猜測如下:

new ObjectMapper().writerFor(<Interface>.class).writeValuesAsArray(<Class>);


查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號