2

我正在使用 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。以前有人遇到过这种情况吗?

任何帮助表示赞赏。

4

1 回答 1

0

看来您正在SecurityManager启用的 JVM 上运行 Gson。您需要禁用安全管理器才能使用 Gson。

于 2012-11-08T07:31:36.320 回答