gpt4 book ai didi

java.lang.reflect.InaccessibleObjectException : Unable to make field private final java. lang.Object java.util.Optional.value 可访问:

转载 作者:行者123 更新时间:2023-12-05 05:38:59 28 4
gpt4 key购买 nike

java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Object java.util.Optional.value accessible: module java.base does not "opens java.util" to unnamed module @6b26e945

我在运行 JUnit 代码时收到此错误。以下代码块周围出现错误。

Optional<RolesDTO> roleDTOEmployee = roles.stream()
.filter(r -> r.getName().equals(RolesEnum.valueOf(roleName).getRoleName())).findFirst();

if (logger.isInfoEnabled()) {
logger.info("roleDTOEmployee {}", gson.toJson(roleDTOEmployee));
}

堆栈跟踪:

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.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:157)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.Gson.toJson(Gson.java:661)
at com.google.gson.Gson.toJson(Gson.java:648)
at com.google.gson.Gson.toJson(Gson.java:603)
at com.google.gson.Gson.toJson(Gson.java:583)

删除 logger.info() 后,JUnit 代码运行完美。我想了解这种行为。是否有解决方法,因此我不必删除记录器。

最佳答案

如果您使用更高的 JDK 版本 (8+) 和其中一个模块(在这种情况下 com.google.gson.Gson 与较低的 JDK 版本兼容),通常会抛出此错误。

您能否检查 JDK 版本 Gson 版本,如果可能和需要,请降级您的 JDK。这样你的错误可能就消失了。另一种可能性是升级 com.google.gson.Gson 版本,使其与您的 JDK 兼容。

另一种解决方法(通常不推荐)是传递 VM args 以避免上述错误:

-Xmx1536M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED

关于java.lang.reflect.InaccessibleObjectException : Unable to make field private final java. lang.Object java.util.Optional.value 可访问:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72790471/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com