小编Har*_*rsh的帖子

java.lang.reflect.InaccessibleObjectException:无法使字段私有最终 java.lang.Object java.util.Optional.value 可访问:

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
Run Code Online (Sandbox Code Playgroud)

当我运行 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));
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

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)
Run Code Online (Sandbox Code Playgroud)

删除 logger.info() 后,JUnit 代码可以完美运行。我想了解这种行为。有没有解决方法,这样我就不必删除记录器。

java error-handling logging junit

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

error-handling ×1

java ×1

junit ×1

logging ×1