2013-05-16 38 views
3

我對序列化有點困惑。序列化和存儲爲實例變量的對象

我有一個類,讓我們稱它爲Container。容器類的變量包含其他類的ArrayLists - A,B,C等...

如果我要序列化並保存Container,那麼在閱讀它之後(爲了清晰起見,理解如何做那部分)可以訪問類A,B等的相同實例,還是需要單獨序列化?進一步說,A,B等需要實現Serializable嗎?Container是這麼做的嗎?

預先感謝

回答

3

這取決於您使用的Collection是如何被序列化的。

如果您使用的是ArrayList,那麼它將序列化List中的所有項目。

爲了系列化內容,內容需要implement Serializable,否則他們需要標記爲transient

因此,要回答你的兩個問題:

  • 1)如果我是序列化和保存容器,我會再...訪問類A,B的那些相同的實例?
    是的。
  • 2)做A,B等需要實現Serializable嗎?
    是的。
+0

謝謝。我想我應該蒐集一些有關集合如何序列化的文檔(當然,這不是你的問題)。 – MrB

0

正如我們所知道序列化是在存儲介質中保存的對象(諸如文件或存儲器緩衝液),或將其在以二進制形式的網絡連接發送的過程。序列化的對象是獨立於JVM的,可以被任何JVM重新序列化。閱讀here