虽然Java中的可序列化接口没有方法,没有字段,但它可以实现其功能。如何?

2022-09-03 14:19:44

尽管 java.io.Serializable 接口令人惊讶地不包含 Java 中的任何方法和字段,但实现此接口的类能够实现序列化和反序列化(正在序列化或反序列化的对象的状态)的功能。在Java中,如何在没有任何方法或字段的情况下实现序列化和反序列化的功能?public interface Serializable{}


答案 1

某些接口仅用作“标记”或“标志”。

UID 和自定义读取器/写入器通过反射进行访问。

Serializable是一个标记,JRE/JVM 可以根据其存在情况采取措施。

http://en.wikipedia.org/wiki/Marker_interface_pattern


答案 2

Serializable 不包含任何方法,它是 ObjectOutputStreamObjectInputStream 类,可以通过 and 方法来完成这项工作。writeObjectreadObject

Serializable只是一个标记接口,换句话说,它只是放一个标志,不需要任何字段或方法。