82 Star 702 Fork 216

Huoyo / ko-time

 / 详情

jdk21

待办的
创建于  
2023-10-20 16:11
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @5dafbe45
	at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315)
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183)
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:177)
	at cn.langpy.kotime.util.Common.getPramsStr(Common.java:171)
	at cn.langpy.kotime.data.MemoryBase.addParamAnalyse(MemoryBase.java:62)
	at cn.langpy.kotime.service.KoInvokedHandler.onInvoked(KoInvokedHandler.java:28)
	at cn.langpy.kotime.service.InvokedQueue.onInveked(InvokedQueue.java:57)
	at cn.langpy.kotime.config.LoadConfig.lambda$initMethodHandlers$0(LoadConfig.java:214)
	at java.base/java.lang.Thread.run(Thread.java:1583)

这个错误信息表明在Java程序中访问ArrayList对象的"elementData"字段时出现了问题。该字段被标记为"transient",意味着在将对象写入磁盘或通过网络传输时无法进行序列化。错误信息提示Java运行时无法访问此字段,原因是出于安全限制。

具体而言,错误信息指出模块"java.base"不允许访问"java.util"包,而该包中包含了ArrayList类。这导致程序无法使用反射修改"elementData"字段的可访问性,从而引发了错误。

要解决此问题,你可能需要修改应用程序的Java模块配置,以允许访问"java.util"包。另外,你还可以修改程序的实现,使用不依赖反射访问内部状态的其他数据结构来替代ArrayList。

评论 (0)

尖斌卡 创建了任务
尖斌卡 修改了描述
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
2338399 aohanhongzhi 1578972252
Java
1
https://gitee.com/huoyo/ko-time.git
git@gitee.com:huoyo/ko-time.git
huoyo
ko-time
ko-time

搜索帮助