[英]How does Java define or detect a class as a serializable class?
我正在使用擴展Swing
對象類的類(例如, public myClass extends JFrame
)以及引用Screen objects/DisplayMode/Graphics
方法/變量。
沒有問題。 但是,當我嘗試將Grphics
實例g
轉換為Graphics2D
對象時,我Grphics
了一個似乎很常見的 錯誤,正如在SE的多個地方所解釋的那樣,這些錯誤提供了很多答案和信息 。
我好奇! 因為我設法解決這個問題,不添加serialVersionID或沒有實現Serializable接口。 如前所述,我不需要將我的班級序列化。 由於解決了該問題,而無需實現/擴展可序列化的接口或添加serialVersionID-我只是很好奇地了解了編譯器在哪種情況下決定 將類視為或更好地進行序列化……我不確定我還能如何解釋這一點。
我想知道,Java編譯器如何/在什么條件下將類限定為可序列化並要求序列號? 就我而言,既不需要序列化,也沒有指定序列化。
class SerializableClass implements Serializable
您只需實現接口。 Java從來不需要序列號。 如果不提供,則在運行時確定。
您還可以擴展可序列化的類:
class AnotherSerializableClass extends SerializableClass
如果Java本身實現了Serializable或擴展了實現Serializable的類,則Java將其分類為Serializable。
由於MyClass
擴展了實現Serializable
JFrame
,因此您的類是可序列化的。
有兩種情況。
(3)對所有基類重復此操作。
請注意,這是由IDE進行的,而不是Java編譯器。 這不是編譯錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.