繁体   English   中英

如何序列化/反序列化包含ArrayList和HashMap的对象?

[英]How do I serialize/deserialize an object which contains an ArrayList and a HashMap?

我有这个课:

public class Bank  implements Serializable{
    ArrayList<Person> people;
    HashMap<Integer, Set<Account>> bank;

    ...
}

如何序列化/反序列化实例银行的对象? 我在Internet上找到了很多有关如何对列表或hashMap进行序列化/反序列化的示例,但是我没有找到对两者或更复杂的序列化/反序列化的示例。 我应该怎么做? 欢迎任何建议。 谢谢!

为了使一个类可序列化,可以:

1)封装的每种类型还必须可序列化

要么

2)该字段必须标记为瞬态 (这意味着它们未序列化)


让我们看看您的银行类正在使用的类型:

前三个都是可序列化的(从我们的JavaDocs中可以看到),所以那里没有问题。

设置不会被定义为可序列化的,但所有的实现java.util那么你可能是安全的。 但是,如果您依赖于可序列化的集合,则可能应该更改定义,这样更明确:

HashMap<Integer, HashSet<Account>> bank;

人员和帐户是我认为您已经编写的类。 您尚未提供它们,但请确保它们还实现了可序列化。 如果它们也不是可序列化的,我相信如果您尝试对其进行序列化,则ArrayList会抛出异常。


此外,请确保您的可序列化类包含serialVersionUID 什么是serialVersionUID,为什么要使用它?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM