在「Layman的」術語中,我想知道是否有人可以向我解釋導入Serializable類來實現java.io.Serializable接口的意義和一般重要性。 從java學生處詢問java.io.Serializable類的意義是什麼?
回答
java.io.Serializable
就是所謂的「標記界面」。接口本身沒有定義的方法。因此,任何類都可以通過簡單地實現它實現了這個接口:
public class MyClass implements Serializable {
public void aMethodForMyClass() { }
// not implementing any specific java.io.Serializable methods because
// the interface has no methods to implement.
}
這是一個「標記」接口,因爲實現此接口你告訴了Java序列化,這是OK序列化此類型的對象。如果你的類沒有實現這個接口,序列化器將拒絕序列化任何這種類型的對象。
這也意味着你承諾構成這個類的一個對象的所有變量都是可序列化的,或者你實現了處理它們所需的代碼。 – JenEriC 2011-04-02 10:10:17
Java序列化程序? – JAVA 2013-10-26 12:23:52
這是發生在編譯時還是在JVM中發生的事情。換句話說,如果我沒有實現Serializable並嘗試序列化一個類,我會遇到編譯器還是運行時錯誤? – BrightIntelDusk 2015-01-28 03:26:01
所有你需要知道的關於Java序列化可以在Java Serialization Specification
的Java Serialization FAQ發現還包含了回答你的問題。
具體的第一個問題似乎是你問的一樣:
Why must classes be marked serializable in order to be written to an ObjectOutputStream?
我希望幫助!
這可能會給你一些有用的信息:http://stackoverflow.com/questions/441196/why-java-needs-serializable-interface – Rahul 2011-04-02 01:46:09
'Serializable'是一個接口,而不是一個類。 – 2011-04-02 02:38:05