在一周前的大学编码任务中,我必须列出一些将保存在Collection(例如ArrayList)中的用户列表,这些用户应该按需序列化,并且序列化的实现应隐藏在特定接口后面。据我所知,你不允许在接口中实现任何方法(让我们假装Java 8+不存在并且没有默认关键字),所以除了使用Abstract类之外我什么都不知道去做这个。这项任务有没有经典的Java解决方案?那我该如何实现序列化?
答案 0 :(得分:0)
依赖java.io.Serializable
接口是一种经典的方式(但不是唯一的)。
Serializable
类的自定义序列化依赖于可序列化类中定义的private
方法:
private void writeObject(ObjectOutputStream out) throws IOException;
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;
事实上,序列化实现将被隐藏(如私有方法中所定义),并且类的客户端只知道该类被定义为实现Serializable
。