0
我有一個實現了Serializable
的類,它是一個更大的對象網格的一部分,它包含一個Constructor
字段,但是當構造函數轉向序列化時,它會拋出NotSerializableException
。爲什麼不能在Java中序列化構造函數對象?
我猜我必須自己編寫邏輯,並且每次我反序列化包含對象時都要自己重新創建構造函數,但爲什麼Java的設計者想要創建這樣的麻煩呢?我意識到需要ClassLoader來確定類的身份,並且ClassLoader本身不會被序列化和反序列化,但是構造函數不應該記住用於創建它的字符串參數嗎?
你是什麼意思的「構造對象」? Java中的構造函數是初始化類的「方法」,它不是一個對象,也不會影響序列化。所以你是什麼意思? –
從構造函數序列化的角度來看,你一點也不清楚。對象是序列化的 - 構造器是成員,除非你的對象實際上包含對'java.lang.reflect.Constructor'的引用。請澄清。 –
糟糕,我想我現在得到它,構造函數沒有實現Serializable,但爲什麼不能自動被認爲是暫態的,如果它不實現Serializable?這不合理嗎? –