0
我看過無數的帖子與我下面的查詢,但無法找到究竟是如何處理這個問題: 我有一個類,如下:JSON字符串到Java對象使用泛型
public class MyClass<T> implements IMyInterface<String, T> {
@Override
public T myMethod(String jsonString) {
ObjectMapper mapper = new ObjectMapper();
//T result = mapper.readValue(jsonString, T.class) //for sure T.class does not make sense, but what is the alternative ?
}
}
我希望將此類用作任何客戶端的util類,這些客戶端可以將它們的json字符串傳遞到myMethod
並獲得期望的Java對象,該對象映射到他們提到的類中,同時實例化MyClass
。 因此,作爲一個例子,但這
MyClass<MyType1> o1 = new MyClass<MyType1>();
MyType1 myType1 = o1.myMethod(aJsonString);
得到MyType1
一個實例,並且不
MyClass<MyType2> o2 = new MyClass<MyType2>();
MyType2 myType2 = o2.myMethod(anotherJsonString);
得到MyType2
一個實例我另一個代碼客戶端代碼看到許多與TypeReference和JavaType使用有關的帖子,但無法弄清楚如何適合他們用例。
我的主要目標是MyClass
實際上應該作爲一個util類而不知道在編譯時什麼是它將轉換輸入json字符串的Java對象。它應該只在運行時才決定。
任何幫助將不勝感激!
非常感謝和最好的問候
謝謝。但是如果我需要通過屬性/構造函數注入(通過XML配置)通過Spring實例化MyClass?我如何注入「clazz」? – lbvirgo
看看你的第二個答案。 – kswaughs
第二個問題與原文不相關,因爲這與春季框架有關。我建議你在這種情況下發佈一個新問題,因爲我有可能不知道後者的答案,你的問題可能無法達到各自的春季科技人員。 – kswaughs