Baeldung
Gson反序列化与InaccessibleObjectException异常处理指南
Java 9起通过JPMS模块系统强化封装,Gson依靠反射访问私有字段时会抛出InaccessibleObjectException。文章在模块化项目中复现该问题,并给出四种解决方案:将字段改为public、在module-info.java中用opens将包开放给com.google.gson、为POJO实现TypeAdapter(需借助公共API创建对象)、以及在无法改动源码时使用JVM参数--add-opens。记录类(record)自Gson 2.10起改用规范构造器,可开箱即用地反序列化。Gson 2.14.0恢复了对java.time类的支持,但需使用与私有字段同名的嵌套结构(如year/month/day、seconds/nanos),ISO格式字符串仍需自定义TypeAdapter;若字段名不匹配会静默取默认值0,从而引发DateTimeException。结论是优先选择opens开放访问或改用record。