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