2014-01-17 55 views
11
class A implements Serializable{ 
    private static final long serialVersionUID = 5L; 
    ... 
} 

serialVersionUID對於不同的類應該是唯一的嗎?

class B implements Serializable{ 
    private static final long serialVersionUID = 6L; 
    ... 
} 

則有必要給予獨特serialVersionUID到兩個班。

所以我可以分配serialVersionUID = 5L兩個類?

我閱讀以下鏈接

Why generate long serialVersionUID instead of a simple 1L?

What is a serialVersionUID and why should I use it?

回答

8

是的,可以。不同類別的串行版本是獨立的,不會相互干擾。

PS
Eclipse甚至建議您設置serialVersionID,默認值爲1L

3

serialVersionUID需要記住類的版本。序列化和反序列化應該是一樣的。提供這個值是一個很好的編程習慣,而不是JVM分配一個(通常是散列)。兩個類沒有必要具有唯一的值。

+0

我想知道,「這應該是單級獨一無二的,但可能可能是相同的兩個不同的類」 –

+0

@Aniket能否請你解釋一下這條線。 「兩個類沒有必要具有唯一值」 –

+1

這意味着兩個不同的類可以具有相同的** serialVersionUID **值。 –

0

是有可能的是兩個不同的類可以有相同的serialVersionUID variable.But喜歡使用唯一一個用於每個class.Also使用8至10位數的較長的一個,而然後就作爲1值。

相關問題