【Bug】Unable to make field private final int java.time.LocalDate.year accessible

news/2024/10/23 7:39:46/

问题描述

在使用这段代码时new Gson().toJson(result),会出现如下异常

Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make field private final int java.time.LocalDate.year accessible: module java.base does not "opens java.time" to unnamed module @2d9d4f9dat java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)at com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)at com.google.gson.Gson.getAdapter(Gson.java:489)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)at com.google.gson.Gson.getAdapter(Gson.java:489)at com.google.gson.Gson.toJson(Gson.java:727)at com.google.gson.Gson.toJson(Gson.java:714)at com.google.gson.Gson.toJson(Gson.java:669)at com.google.gson.Gson.toJson(Gson.java:649)at com.example.demo.config.GsonConfig.main(GsonConfig.java:85)

原因分析:

gson不能使用反射,将LocalDate,LocalDateTime等时间类型反射调用;
请检查一下,你的项目JDK的版本是否是JDK9以上(Gson 是通过反射的方式来访问相关的属性的,而这一方式在 JDK 9 开始就已经被禁用了);


解决方案:

有两种解决方式:
1.使用jdk1.8版本;
2.在java启动命令行添加:--add-opens java.base/java.time=ALL-UNNAMED虚拟机选项(VM Options)来使得反射功能能够正常使用


http://www.ppmy.cn/news/1147900.html

相关文章

Ultra-Fast-Lane-Detection 车道线学习资料整理

目录 官方版本 两个优化 数据标注,降低参数量 1 数据标注 2降低参数量

华为李鹏:加速5G商业正循环,拥抱更繁荣的5.5G(5G-A)

2023年10月10日,在华为主办的第十四届全球移动宽带论坛上,华为高级副总裁、运营商BG总裁李鹏面向来自全球的运营商和产业伙伴,提出抓住网络需求和趋势的力量——“面向后天的业务,积极规划明天的网络,加速5G商业正循环…

Java数据结构第十七章、手撕位图

给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】 1. 遍历,时间复杂度O(N) 2. 排序(O(NlogN)),利用二分查找: logN 3. 位图解决 数据是否在给定的整形数据中,结…

uniapp快速入门系列(4)- 微信小程序开发

第四章 微信小程序开发 4.1 微信小程序开发与uniapp的融合4.2 微信小程序API在uniapp中的使用4.3 微信小程序常见问题的解决方法问题1: 如何获取用户信息?问题2: 如何获取当前位置?问题3: 如何发送网络请求? 在本章中,我们将学习如…

AUTOSAR汽车电子嵌入式编程精讲300篇-面向OTA的信息安全防护协议

目录 前言 国内外研究现状 汽车OTA相关技术以及常用加密算法介绍 2.1 引言

043:mapboxGL鼠标点击提示source属性信息

第043个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标点击提示source属性信息。这里用到了popup弹窗,用到了click事件,用到了鼠标样式的变化等功能。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源…

数据结构和算法(12):词典

词典 逻辑上的词典,是由一组数据构成的集合,其中各元素都是由关键码和数据项合成的词条(entry)。 映射(map)结构与词典结构一样,也是词条的集合。 二者的差别仅仅在于,映射要求不同…

无法打开文件“opengl32.lib”

无法打开文件“opengl32.lib” [TOC](无法打开文件“opengl32.lib”) 前言一、找到库链接配置勾选继承input里也要勾选继承 前言 随便找个教程配置结果报错无法打开文件opengl32.lib 分析原因: opengl库和windows自带库一样出问题应该是VS配置有问题 提示&#xff…