簡體   English   中英

為什么枚舉在Java中可序列化的方式不同

[英]why enum are serializable differently in java

關於枚舉和序列化有很多折磨,我也在sun上閱讀了這篇文章,但是找不到如何對其進行序列化。

枚舉常量的序列化與普通可序列化或可外部化的對象不同。 枚舉常量的序列化形式僅由其名稱組成; 常量的字段值不存在於表單中。 為了序列化枚舉常量,ObjectOutputStream寫入由枚舉常量的name方法返回的值。 為了反序列化枚舉常量,ObjectInputStream從流中讀取常量名稱。 然后,通過調用java.lang.Enum.valueOf方法,將常量的枚舉類型與接收到的常量名稱一起作為參數來獲取反序列化的常量。

任何例子都將不勝感激。

所有枚舉類型都隱式擴展了已經實現Serializable的java.lang.Enum 因此,您沒有要采取的特定操作,已經為您完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM