2012-06-04 67 views
0

試圖寫一個擴展jpanel和實施serializable對象在類的服務器之後,我的java.io.notserializableException錯誤,但它的工作好,如果延長jframe.我得到Java.io.notserializableException錯誤

這裏是代碼:

//to send to server 
objectoutputstream out = new objectoutputstream(socket.getoutputstream()); 
out.writeobject(myobject); 

//to receive in server 
objectinputstream in = new objectinputstream(socket.getinputstream()); 
in.readobject(); 

感謝您的任何幫助。

+1

請提供'myobject'實現。任何序列化對象都必須實現'Serializable'接口,其中的任何聚合對象也必須實現該接口(等等)。 – Xeon

+0

請用正確的大小寫編輯您的文章。 Java是區分大小寫的,我也是如此。 – EJP

+0

我能夠跟蹤所有其他類對象來實現可序列化,並且我最終得到了異常:java.io.notserializableEXCEPTION java.lang.object它暗示對象類還必須實現可序列化的接口,但無法訪問java庫中存在的「通用」類的對象類。那我該如何調整呢?謝謝 – Chibuzo

回答

1

您對JPanelmyobject實例)的實施具有對某個其他對象的引用(例如專用字段),該引用不會執行Serializable。這是另一個對象,這是導致異常。

2

JPanel (Java 2 Platform SE v1.4.2),它說:

警告:此類的序列化對象將與以後的Swing版本不兼容。當前的序列化支持適用於運行相同版本Swing的應用程序之間的短期存儲或RMI。從1.4開始,支持所有JavaBean TM的長期存儲已被添加到java.beans包中。請參閱XMLEncoder

+0

+1引用這個引用,每個人似乎都忽略了,但是這不包含'NotSerializableException .' – EJP

1

正如@Xeon所說,爲myobject提供impl。正如你所說異常來自於Object類,那就意味着你的類或任何類成員,即字段(它是一個對象,而不是一個前置類型)沒有實現Serializable接口。 另外你如何在那裏創建myobject?只是直接 對象myobject = ...
或 myobject = .... ?

只要確保每個人都實現可序列化。

對象類提供了方法,但沒有實現可序列化的接口,否則默認情況下,Java中的每個對象都是可序列化的!