当前位置: 首页 > news >正文

包头网站建设旅游景点网页设计作品

包头网站建设,旅游景点网页设计作品,如何对网站用户分析,wordpress多重筛选机制Jackson是一个比较流行的Json序列化和反序列化框架。本文以Jackson为例介绍TypeReference实现涉及泛型的反序列化#xff0c;及TyperReference的实现原理。对于获取泛型类型信息的场景#xff0c;TypeReference是一个可以参考的通用解决方案。 Jackson ObjectMapper的readVa…Jackson是一个比较流行的Json序列化和反序列化框架。本文以Jackson为例介绍TypeReference实现涉及泛型的反序列化及TyperReference的实现原理。对于获取泛型类型信息的场景TypeReference是一个可以参考的通用解决方案。 Jackson ObjectMapper的readValue可以将Json字符串反序列化为Java对象。 例如将下列Json串反序列化为ListUserResource类型。 Json串 [{id:null,name: ,age:500,gender:false,email:email,employed:true,salary:10} ]UserResource实体类 Builder Data NoArgsConstructor AllArgsConstructor public class UserResource {private UUID id;private String name;private int age;private boolean gender;private String email;private boolean employed;private BigDecimal salary; }1理想的实现方式 理想的实现方式是告诉ObjectMapper的readValue方法我要的是ListUserResource帮我反序列化成这个类型。 ListUserResource list new ObjectMapper().readValue(userResourcesStr, ListUserResource.class);现实的编译器告诉你这不行Cannot select from parameterized type. 也很好理解Java编译器认为List是Class而List则不是。 2换一种实现方式 既然不能用ListResource.class那如果我告诉ObjectMapper的readValue方法我要的是LIst类型但返回值类型是ListUserResource会发生什么呢 ListUserResource list new ObjectMapper().readValue(userResourcesStr, List.class);这时候倒没有编译错误但是会有警告Unchecked assignment: java.util.List to java.util.ListUserResource显然ObjectMapper并不能反序列化为UserResource类型而是LinkedHashMap类型。如下图所示 3TypeReference的实现方式 ObjectMapper提供了readValue(String content, TypeReference valueTypeRef)接口第二个参数为new一个TypeReference的子类实例new TypeReferenceListUserResource(){}。泛型抽象类TypeReference用于通过子类获取完整的泛型类型信息。 ListUserResource list new ObjectMapper().readValue(userResourcesStr, new TypeReferenceListUserResource(){});4TypeReference实现原理 上例中new TypeReferenceListUserResource(){}子类的实例TypeReference源码部分比较简单主要逻辑是通过getClass().getGenericSuperclass();获取父类中的参数化类型ParameterizedType。 这部分不清楚可以看Java 中的Type类型及其实现【学习记录】 TypeReference主要源码 protected TypeReference() {Type superClass getClass().getGenericSuperclass();_type ((ParameterizedType) superClass).getActualTypeArguments()[0]; }getGenericSuperclass返回一个Type类型的对象代表实体classinterfaceprimitive type or void的直接父类如果父类是参数化类型则返回的Type对象可准确反应源码中使用的实际type参数。 Class的genericInfo 5总结 Jackson ObjectMapper 提供了TypeReference支持对泛型对象的反序列化对于获取泛型类型信息的场景TypeReference是一个可以参考的通用解决方案。
http://www.hkea.cn/news/14526178/

相关文章:

  • 黄冈做网站公司北京价格网
  • 长宁专业网站制作公司百度热搜榜排名
  • 方城企业网站制作哪家好网络服务器与个人计算机的区别
  • 什么软件可以做动漫视频网站wordpress文章首页显示
  • 自己创做网站我的网站搜索不到了
  • 电子商务网站规划与建设摘要三只松鼠网络营销方案
  • 网站建设哪个公司的好搜索引擎优化方法案例
  • 湖北德升建站网站需求分析怎么写
  • 长春网站设计价格网站建设人员工作计划
  • 太仓建设工程网站多个网站备案负责人
  • 淘宝网站网页图片怎么做的局域网内网站建设的步骤过程
  • 用vs2010做网站登入中国建设网官方网站企业网银
  • 网站收录减少python云服务器网站开发实例
  • 招聘网站可做哪些推广方案51ppt模板网原创ppt模板
  • 网站建站的基本步骤德阳网站制作
  • 做国内网站多少钱活泼风格的网站
  • 郑州市建设安全管理协会网站衡水提供网站制作公司电话
  • 建设项目环保验收公示网站做网站框架可用jpg图吗
  • 网站信息发布中国建设银行手机网站下载安装
  • 做内贸的网站seo优化教程下载
  • 营销型网站建设风格设定包括哪些方面?江西建设三类人员网站
  • 潍坊知名网站建设价格wordpress搬家出现404
  • 保定网站建设的过程企业猫源码网
  • 海南的房产网站建设wordpress中文房产主题
  • 成品网站w灬源码伊甸院做市级网站需要什么
  • 做外贸找生意上哪个网站徐州制作手机网站
  • 前端开发线上培训seo关键词查询排名软件
  • 一见钟情 网站昆明系统开发
  • 网站建设风险怎样规避wordpress 帮助手册
  • 桂城网站制作公司做网站产品图片素材