squ*_*uck 5 java serialization
所以我知道我最终可能会弄明白,但我找不到能回答这个看似简单问题的话题.
我正在序列化一组对象的向量,每个对象都属于一个用户定义的类.我知道矢量是可序列化的.我是否还必须使用户定义的类实现可序列化?并且,这些用户定义的类中的每一个都包含其他用户定义的类.那些必须被标记为实现Serializable吗?(依此类推,或只做顶级类需要实现Serializable)?
(忘记注意应该使用arrayLists而不是vector,我之前听说过,我正在练习,因为我听说矢量对于多线程很有用.我找到了讨论相似内容的主题,但不是这个)
谢谢
是的,你是对的:任何被序列化的东西,包括字段(实例变量)引用的所有类,都必须实现Serializable,或者字段必须是transient.
在您的情况下,用户定义的类必须实现Serializable,并具有类型为的字段Serializable.这是递归应用的,因此字段类的字段也必须是Serializable等等.
该transient关键字告诉序列化机制忽略该字段以进行序列化.