2012-06-04 52 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中的每个对象都是可序列化的!