我正在使用 Gson 序列化/反序列化一个包含静态嵌套类的类。该类如下所示。
public class ClassA {
private NestedClass nestedClass;
public NestedClass getNestedClass() {
return nestedClass;
}
public void setNestedClass(NestedClass nestedClass) {
this.nestedClass = nestedClass;
}
public static class NestedClass implements Serializable {
public NestedClass() {
}
}
}
序列化工作正常,但是当我尝试将 json 字符串反序列化回一个对象时,我得到以下 SecurityException。
java.lang.SecurityException: Can not make a java.lang.Class constructor accessible
at java.lang.reflect.AccessibleObject.setAccessible0(Unknown Source)
at java.lang.reflect.AccessibleObject.setAccessible(Unknown Source)
at com.google.gson.MappedObjectConstructor.getNoArgsConstructor(MappedObjectConstructor.java:86)
at com.google.gson.MappedObjectConstructor.constructWithNoArgConstructor(MappedObjectConstructor.java:63)
at com.google.gson.MappedObjectConstructor.construct(MappedObjectConstructor.java:54)
at com.google.gson.JsonObjectDeserializationVisitor.constructTarget(JsonObjectDeserializationVisitor.java:42)
at com.google.gson.JsonDeserializationVisitor.getTarget(JsonDeserializationVisitor.java:55)
异常似乎来自 Java,同时试图反射(reflect)内部类。有没有人遇到过这种情况?
感谢任何帮助。
最佳答案
看来您是在启用了 SecurityManager
的 JVM 上运行 Gson。您需要禁用安全管理器才能使用 Gson。
关于java - Gson 安全异常 : Can not make Class Constructor accessible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267258/