大佬教程收集整理的这篇文章主要介绍了Jackson和泛型类型参考,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是java类型擦除的一个众所周知的问题:T只是一个类型变量,你必须指示实际的类,通常将其作为Class参数。没有这些信息,最好的办法就是使用界限。普通T与“ T扩展对象”大致相同。然后Jackson会将JsON对象绑定为Maps。
在这种情况下,tester方法需要有权访问Class,你可以构造
JavaType type = mapper.getTypeFactory().
constructCollectionType(List.class, Foo.class)
接着
List<Foo> List = mapper.readValue(new file("input.Json"), typE);
我想将jackson json库用于通用方法,如下所示:
public Myrequest<T> tester() {
TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>();
MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonrequest,typeRef);
return requestWrapper.getrequest();
}
&Hellip;
public class MyWrapper<T> {
private Myrequest<T> request;
public Myrequest<T> getrequest() {
return request;
}
public void setrequest(Myrequest<T> request) {
this.request = request;
}
}
public class Myrequest{
private List<T> myobjects;
public void setMyObjects(List<T> ets) {
this.myobjects = ets;
}
@NotNull
@JsonIgnore
public T getMyObject() {
return myobjects.get(0);
}
}
现在的问题是,当我调用位于请求对象内的getMyObject()时,杰克逊将嵌套的自定义对象作为LinkedHashMap返回。有什么方法可以指定需要返回T对象吗?例如:如果我发送了类型为Customer的对象,则应该从该List?中返回Customer。
以上是大佬教程为你收集整理的Jackson和泛型类型参考全部内容,希望文章能够帮你解决Jackson和泛型类型参考所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。