【发布时间】:2016-10-25 15:17:28
【问题描述】:
我正在尝试序列化一个类对象(比如说 MyClass)
MyClass.java 大致如下:
public class MyClass {
private static final AtomicInteger variableOne = new AtomicInteger();
private static final AtomicInteger variableTwo = new AtomicInteger();
private static final AtomicInteger variableThree = new AtomicInteger();
private static final AtomicInteger variableFour = new AtomicInteger();
/*
* Have the getters and setters here
*/
}
我正在尝试使用 GSON 将上述类的对象转换为 JSON
代码如下:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.excludeFieldsWithModifiers(java.lang.reflect.Modifier.TRANSIENT);
Gson gson = gsonBuilder.create();
String jsonObject = gson.toJson(new MyClass());
但它会抛出以下异常:
class java.util.concurrent.atomic.AtomicInteger declares multiple JSON fields named serialVersionUID
我不确定如何处理这个问题,因为 S.O 和其他论坛上的大多数答案都要求将变量 TRANSIENT 设为 TRANSIENT,而这基本上不是我想要实现的目标。
【问题讨论】:
-
我使用的是 gson 2.2.1
-
请贴出你要序列化的整个类
-
请把它当作整个班级。我只更改了变量的名称并隐藏了 getter 和 setter。
-
我使用的是 2.6.1 版本,它没有抛出这个异常。
-
@notionquest 可能是该版本默认忽略了serialversionUID。不确定,但我无法更改版本,因为我无法控制 pom.xml,所以必须坚持使用 2.2.1
标签: java json gson atomicinteger