2017-07-07 74 views
0

我有类A,扩展了类B,实现了Serializable。错误:类声明多个名为serialVersionUid的JSON字段

当我尝试在JSON中使用GSON库进行转换时,它说“类声明了多个名为serialVersionUid的JSON字段”。

只要我知道,如果我不显式声明serialVersionUid,它是由GSON生成的。

我也尝试将serialVersionUid静态放置,但不起作用。

我可以通过实现在A级序列化修正这个错误,但我有一个扩展乙很多类,而我不认为排除B,从他们的将是一个很好的IDEIA ...

有谁知道为什么会出现此错误?

Class A extends B { 
    private c; 
    private d; 
    private e; 
} 

Class B extends Serializable{ 
    private f; 
    private g; 
} 
+1

相关:https://stackoverflow.com/questions/16476513/class-a-declares-multiple-json-fields – 2017-07-07 14:51:37

+0

@RC。这个问题是相似的,但这不是我的问题。我的问题是,被声明为多个IS的字段不是由我声明的,它是自动生成的。相关的问题是关于我自己创建的领域。 –

+0

一个类不能'扩展Serializable'。什么是真正的代码? – EJP

回答

0

几秒前我有同样的问题。 我已通过使用瞬态修改器添加serialVersionUUID来解决此问题。以超级类,如下:

private transient static final long serialVersionUID = 1L; 

我希望它也能帮助你。

+0

很奇怪。 'transient'与'static'无关。它真的必须是“瞬态”吗? – EJP

+0

Java中的transient关键字用于指示不应序列化字段。 从Java语言规范Java SE 7 Edition的第8.3.1.3节。瞬态字段: 变量可能被标记为瞬态以表明它们不是对象持久状态的一部分。 –