TypeReference 这个类有什么作用?

embedded/2024/10/17 16:37:21/

文章目录

  • 处理复杂类型
  • 简化 JSON 反序列化

TypeReference 是 Jackson 库中的一个类,主要用于在进行 JSON 序列化和反序列化时描述 Java 类型,尤其是在处理泛型时。Jackson 是一个流行的 Java 库,用于将 Java 对象转换为 JSON 以及将 JSON 转换为 Java 对象。

主要作用:

处理复杂类型

  1. Java 泛型在类型擦除的情况下,直接使用泛型类型(如 List)会失去其具体类型信息。TypeReference 允许你保留这种信息。
  2. 通过扩展 TypeReference,你可以创建一个匿名类来捕获需要的类型信息。

简化 JSON 反序列化

  1. 在反序列化时,使用 TypeReference 可以方便地指定完整的类型信息。例如,要将 JSON 反序列化为 List 类型,可以使用 new TypeReference<List>() {}。

代码示例:

java">import com.fasterxml.jackson.core.type.TypeReference;  
import com.fasterxml.jackson.databind.ObjectMapper;  
import java.util.List;  public class Example {  public static void main(String[] args) throws Exception {  String json = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Jane\",\"age\":25}]";  ObjectMapper objectMapper = new ObjectMapper();  List<User> users = objectMapper.readValue(json, new TypeReference<List<User>>() {});  // now you can use the list of users  for (User user : users) {  System.out.println(user.getName() + " is " + user.getAge() + " years old.");  }  }  
}  class User {  private String name;  private int age;  // Getters and setters  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public int getAge() {  return age;  }  public void setAge(int age) {  this.age = age;  }  
}

http://www.ppmy.cn/embedded/128213.html

相关文章

oracle sysdate 减小时

在Oracle中&#xff0c;要将sysdate减去一定数量的小时&#xff0c;可以使用numtodsinterval函数结合sysdate进行操作。例如&#xff0c;如果你想要从当前时间减去5小时&#xff0c;可以使用以下SQL语句&#xff1a; SELECT sysdate - numtodsinterval(5, HOUR) FROM dual; 这…

人工智能的核心技术之机器学习

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 人工智能&#xff08;AI&#xff09;核心技…

electron-vite_8修改版本号和出品公司名称

当使用electron-builder是打包的时候&#xff0c;只需要在package.json中修改2个地方就可以了; 找到package.json // 版本号 "version": "1.0.0", // 出品公司 "author": "xx科技股份有限公司",怎么判断是否修改成功,win举例 比方说…

k8s权限控制RBAC中的clusterrole serviceaccount rolebinding 有什么作用

在 Kubernetes 的权限控制模型中,RBAC(基于角色的访问控制,Role-Based Access Control)用于管理对集群资源的访问权限。ClusterRole、ServiceAccount 和 RoleBinding 是其中的关键概念。下面是它们的作用: 1. ClusterRole 作用: ClusterRole 定义了一组权限(可以访问或操…

MoneyPrinterPlus:AI 自动生成与批量发布短视频的开源工具

1. 引言 在短视频变现成为主流的社交媒体时代&#xff0c;内容创作者和企业都在寻找高效的方式来批量生成和发布短视频。MoneyPrinterPlus 是一个专为此设计的开源AI工具&#xff0c;它通过AI自动生成短视频&#xff0c;帮助用户轻松应对社交媒体内容需求 GitHub 项目地址&am…

论文精读:通过目标感知双分支蒸馏的跨域目标检测(CVPR2022)

原文标题&#xff1a;Cross Domain Object Detection by Target-Perceived Dual Branch Distillation 中文标题&#xff1a;通过目标感知双分支蒸馏进行跨域目标检测 论文地址&#xff1a; https://arxiv.org/abs/2205.01291 代码地址&#xff1a; GitHub - Feobi1999/TDD 这篇…

【Windows】【DevOps】Windows Server 2022 采用WinSW将一个控制台应用程序作为服务启动(方便)

下载WinSW 项目地址&#xff1a; GitHub - winsw/winsw: A wrapper executable that can run any executable as a Windows service, in a permissive license. 下载地址&#xff1a; https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe 参考配置模…

HttpClient的基本使用【IDEA版】

对于后端开发来说&#xff0c;常见的接口测试工具有Postman和Swagger或与二者同类型的工具&#xff0c;但是二者有一定的弊端或者说不方便。 Postman需要额外安装&#xff0c;且保存接口的时候需要注册登录账户&#xff0c;再者测试接口的时候需要将url及数据等同步迁移&#x…