2017-07-07 80 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節。瞬態字段: 變量可能被標記爲瞬態以表明它們不是對象持久狀態的一部分。 –