Java 如何序列化/反序列化包含ArrayList和HashMap的对象?
我有这门课:Java 如何序列化/反序列化包含ArrayList和HashMap的对象?,java,serialization,deserialization,Java,Serialization,Deserialization,我有这门课: public class Bank implements Serializable{ ArrayList<Person> people; HashMap<Integer, Set<Account>> bank; ... } 公共类库实现可序列化{ ArrayList人; HashMap库; ... } 如何序列化/反序列化实例库的对象?我在互联网上找到了很多关于如何序列化/反序列化列表或哈希映射的示例,但我没有找到
public class Bank implements Serializable{
ArrayList<Person> people;
HashMap<Integer, Set<Account>> bank;
...
}
公共类库实现可序列化{
ArrayList人;
HashMap库;
...
}
如何序列化/反序列化实例库的对象?我在互联网上找到了很多关于如何序列化/反序列化列表或哈希映射的示例,但我没有找到序列化/反序列化两者或更复杂的示例。我该怎么做?欢迎任何建议。谢谢 要使类可序列化,请执行以下任一操作: 1) 它封装的每个类型也必须是可序列化的 或 2) 该字段必须为(这意味着它们未序列化)
让我们看看您的银行类正在使用的类型:
- ,及
- 人与账户
java.util
中的所有实现都是可序列化的,所以您可能是安全的。但是,如果您依赖可序列化的集合,则可能应该更改定义,使其更明确:
HashMap<Integer, HashSet<Account>> bank;
HashMap只要确保Person和Account基本上是可序列化的ArrayList和HashMap都是可序列化的,这里的问题是什么?向我们展示您迄今为止所做的尝试。@AmitK集可能是,也可能不是(所有集合集实现都是,但接口不能保证)。而且他的自定义类也可能不是。@Michael,OP没有使用set,他的自定义类只不过是AL和Map的实例,并且两者都是可序列化的。很抱歉,我错过了这一点。。