隐藏序列化的实现

时间:2018-02-02 23:21:03

标签: java interface

在一周前的大学编码任务中,我必须列出一些将保存在Collection(例如ArrayList)中的用户列表,这些用户应该按需序列化,并且序列化的实现应隐藏在特定接口后面。据我所知,你不允许在接口中实现任何方法(让我们假装Java 8+不存在并且没有默认关键字),所以除了使用Abstract类之外我什么都不知道去做这个。这项任务有没有经典的Java解决方案?那我该如何实现序列化?

1 个答案:

答案 0 :(得分:0)

依赖java.io.Serializable接口是一种经​​典的方式(但不是唯一的)。

Serializable类的自定义序列化依赖于可序列化类中定义的private方法:

private void writeObject(ObjectOutputStream out) throws IOException;

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;

事实上,序列化实现将被隐藏(如私有方法中所定义),并且类的客户端只知道该类被定义为实现Serializable

相关问题