我有这堂课:
public class Bank implements Serializable{
ArrayList<Person> people;
HashMap<Integer, Set<Account>> bank;
...
}
如何序列化/反序列化实例Bank的对象?我在互联网上找到了很多关于如何序列化/反序列化列表或hashMap的例子,但是我没有找到序列化/反序列化这两个或更复杂的例子。我该怎么做?欢迎任何建议。谢谢!
答案 0 :(得分:0)
为了使类可序列化,可以:
1)它封装的每种类型也必须是可序列化的
或
2)该字段必须为marked as transient(这意味着它们未被序列化)
让我们看看你的班级正在使用的类型:
前三个都是可序列化的(我们可以从他们的JavaDocs中看到)所以那里没有问题。
根据定义, 序列化不是,但java.util
中的所有实现都是可能安全。但是,如果您依赖于可序列化的集合,您应该更改您的定义,使其更明确:
HashMap<Integer, HashSet<Account>> bank;
人和帐户是我认为你自己写的课程。您尚未提供它们,但请确保它们也实现了可序列化。如果它们也不是可序列化的,我相信如果你尝试序列化它,你的ArrayList会抛出异常。
此外,请确保您的可序列化类包含serialVersionUID
。 What is a serialVersionUID and why should I use it?