new Gson() 和 GsonBuilder().registerTypeAdapter(...).create() 得到的都是 Gson 对象,都可以调用 toJson ()。区别不是 “有参
new Gson()和GsonBuilder().registerTypeAdapter(...).create()得到的都是 Gson 对象都可以调用 toJson ()。 区别不是 “有参 / 无参构造 Gson”区别是这个 Gson 实例有没有装上自定义的类型转换器ClassCodec。//版本A裸Gson没有注册Class类型适配器 Gson gson1 new Gson(); //版本BGsonBuilder构建注册了Class类型的自定义编解码器 Gson gson2 new GsonBuilder() .registerTypeAdapter(Class.class, new Serializer.ClassCodec()) .create();1. 普通对象两者完全一样如果你的对象里没有Class?类型的字段比如普通 DTOclass User{ Long id; String name; }gson1.toJson(user)和gson2.toJson(user)输出的 JSON 字符串一模一样。 这个时候你完全可以用简单的new Gson()。2.RPC 调用消息对象Invocation就不一样了RPC 的调用报文对象一定会携带Class类型成员class RpcInvocation{ private String methodName; private Class? interfaceClass; //❗这里是Class类型 private Class?[] paramTypes; //❗Class数组 private Object[] args; }原生 Gsonnew Gson ()处理Class字段直接翻车Gson 原生不知道怎么序列化UserApi.class这种Class对象。 直接new Gson().toJson(invocation)会把 Class 对象内部一堆 JVM 元属性全部序列化出来生成一大坨垃圾 JSON反序列化根本还原不回来。所以手写了ClassCodec适配器序列化时把Class?对象转为它的全类名字符串com.xxx.UserApi反序列化时拿到字符串Class.forName(全类名)重新加载出 Class 对象registerTypeAdapter(Class.class, new ClassCodec())就是告诉这个 Gson 实例只要遇到 Class 类型不要用原生逻辑用我写的这套编解码。⚠️重点这个适配器只属于 gson2 这个实例。new Gson()出来的 gson1 完全不知道这个自定义逻辑处理 Class 字段直接出错。3. 不是 toJson 需要 “特殊入参”是 Gson 实例需要提前装配适配器toJson(object)方法本身没有变传入的对象也没变。是 Gson 这个工具实例内部预装了处理 Class 类型的规则。流程用 GsonBuilder注册Class类型的自定义 Codec.create()生成一个带该规则的 Gson 对象调用gson.toJson(对象)当遍历对象字段碰到字段类型是Class自动执行我们写好的 ClassCodec 序列化逻辑输出全类名字符串。4. 反序列化那边也要同一个 Gson//反序列化也必须用注册过Codec的gson对象 return gson.fromJson(json,clazz);接收方 fromJson 的时候JSON 里面存的是全类名字符串Gson 看到目标字段是 Class 类型就会走 Codec 的反序列化逻辑调用 Class.forName 还原 Class 对象。如果接收方用裸new Gson()拿到字符串不知道要转 Class直接得到字符串类型不匹配直接报错。一句话总结普通 POJOnew Gson()完全够用。RPC 报文里面包含Class/Class[]字段必须用 GsonBuilder 注册自定义适配器生成装配好规则的 Gson 实例。不是 toJson 调用的时候传参数是构建 Gson 工具对象的时候提前装好特殊类型的处理逻辑。踩坑提醒很多新手会犯序列化用带 Codec 的 Gson反序列化写new Gson()两边 Gson 实例不一样反序列化直接报错。序列化、反序列化必须用同一个注册过适配器的 Gson 实例。优化小提示不要每次 serialize/deserialize 方法内部都 new 一遍 GsonBuilderGson 实例是线程安全的可以提为静态常量只构建一次。//只初始化一次 private static final Gson GSON new GsonBuilder() .registerTypeAdapter(Class.class, new Serializer.ClassCodec()) .create();

相关新闻

惠普Cloud Recovery Tool系统恢复全攻略与疑难解答

惠普Cloud Recovery Tool系统恢复全攻略与疑难解答

1. 惠普官方恢复方案核心价值解析作为拥有15年IT运维经验的硬件工程师,我处理过上百台惠普设备的系统恢复案例。HP Cloud Recovery Tool是惠普在2018年推出的革命性恢复方案,相比传统恢复分区和光盘介质,其核心优势在于三点:第一是…

2026/8/11 6:44:15 阅读更多 →
二叉树c++的实现

二叉树c++的实现

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 ≤8)。输入格式共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式共一行一个字符…

2026/8/11 6:44:15 阅读更多 →
区块链钱包核心技术解析与安全实践指南

区块链钱包核心技术解析与安全实践指南

1. 区块链钱包的本质解析区块链钱包本质上是一个管理数字资产的工具,它并不像传统钱包那样直接存储货币,而是通过公私钥加密体系实现对链上资产的管控。这个认知误区需要首先澄清——当你使用区块链钱包时,实际资产始终存在于区块链网络中&am…

2026/8/11 6:43:15 阅读更多 →

最新新闻

毕夏 AI 官网硬核科普:打破论文写作卡点,一站式搞定毕业论文全流程创作

毕夏 AI 官网硬核科普:打破论文写作卡点,一站式搞定毕业论文全流程创作

对于本科生、硕士研究生而言,毕业论文是学业收官的核心关卡,从选题敲定、框架搭建、文献梳理、正文撰写,到实证内容填充、语句润色、格式统一,整套流程耗时数月。不少学生长期陷入低效循环:对着空白文档无从下笔、文献…

2026/8/11 12:33:41 阅读更多 →
AI如何攻克分布式系统难题?GPT-5.6与Fable 5的协同推理实践

AI如何攻克分布式系统难题?GPT-5.6与Fable 5的协同推理实践

如果你是一位关注AI前沿进展的开发者,最近可能被一个看似矛盾的新闻刷屏了:GPT-5.6 联手 Fable 5,证明了“25年通信难题”。这听起来像是一个技术悖论。一方面,我们熟知GPT是OpenAI的语言模型,而Fable 5则是一个AI驱动…

2026/8/11 12:33:41 阅读更多 →
分布式缓存架构设计与性能优化实战指南

分布式缓存架构设计与性能优化实战指南

1. 分布式缓存的核心价值与行业现状 第一次接触分布式缓存是在2015年一个电商大促项目中,当时单机Redis在百万级QPS面前直接崩溃。那次事故让我深刻认识到:在当今高并发场景下,分布式缓存已从"锦上添花"变成了"雪中送炭"…

2026/8/11 12:33:41 阅读更多 →
Grok图像编辑API实战:语义感知的AI精准修图与集成指南

Grok图像编辑API实战:语义感知的AI精准修图与集成指南

最近,AI图像生成领域的热点似乎总被几个巨头牢牢占据。但如果你关注的是“如何真正控制AI生成的图像”,而不仅仅是“生成一张图”,那么一个新的玩家——Grok的图像编辑功能——正悄然获得开发者和创意工作者的好评。这背后反映的,…

2026/8/11 12:33:41 阅读更多 →
新锐衣物护理品牌的市场机遇与竞争策略

新锐衣物护理品牌的市场机遇与竞争策略

1. 新锐衣物护理品牌的市场机遇 最近两年,国内衣物护理市场正在经历一场静悄悄的革命。传统洗衣液、柔顺剂的市场份额正在被一批新兴品牌蚕食,这些品牌以更专业的细分定位、更时尚的包装设计和更环保的产品理念,迅速赢得了年轻消费者的青睐。…

2026/8/11 12:33:41 阅读更多 →
Demucs深度解析:混合Transformer音频分离技术原理与实战指南

Demucs深度解析:混合Transformer音频分离技术原理与实战指南

Demucs深度解析:混合Transformer音频分离技术原理与实战指南 【免费下载链接】demucs Code for the paper Hybrid Spectrogram and Waveform Source Separation 项目地址: https://gitcode.com/gh_mirrors/de/demucs Demucs是一款基于深度学习的开源音乐源分…

2026/8/11 12:32:40 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →