實作 java.io.Serializable 介面的類別才具備可序列化能力。此介面為標記介面,無任何方法與欄位,僅用於標識語意。序列化將物件轉換為位元組序列,可持久化儲存或透過網路傳輸;反序列化則將位元組序列還原為物件。
public class Order implements Serializable {
private String id;
private double money;
private String receiverInfo;
private int payState;
private Date orderTime;
private int userId;
private String userName;
private String nickName;
private List orderItems;
// Getter/Setter 略
}
此類別實作 Serializable,即可直接用 ObjectOutputStream 寫入檔案/網路,ObjectInputStream 讀取還原,所有欄位(含集合)自動處理。
Serializable 是 Java 提供的通用資料保存與讀取介面。實作它即可將任意物件持久化至檔案、網路傳輸或管道傳輸,極大簡化類別設計。只要設計一組序列化/反序列化工具方法,即可解決所有物件持久化與傳輸需求。