Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible

完整日志:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not "opens java.lang.invoke" to unnamed module @dd05255
    at 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.baomidou.mybatisplus.core.toolkit.SetAccessibleAction.run(SetAccessibleAction.java:18)
    at com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction.run(SetAccessibleAction.java:9)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
    at com.baomidou.mybatisplus.core.toolkit.ReflectionKit.setAccessible(ReflectionKit.java:203)
    at com.baomidou.mybatisplus.core.toolkit.support.SerializedLambdaMeta.<clinit>(SerializedLambdaMeta.ja

错误原因:这个异常表明在尝试访问私有字段 capturingClass 时出现了权限问题,导致无法设置访问权限。更具体地说,这是由于 Java 9 引入的模块化系统所致,该系统限制了对模块内部的私有成员的访问。(因为本人使用的是Java17,所以会出现这个问题)

解决方案:将项目所使用的Java版本修改为Java 8即可。

 

 

posted @ 2024-04-01 10:31  CherriesOvO  阅读(808)  评论(0编辑  收藏  举报