我收到了Java.io.notserializableException错误

时间:2012-06-04 20:55:36

标签: java exception

尝试将对象写入扩展java.io.notserializableException的类中的服务器并实现jpanel后,我收到serializable错误但是如果扩展jframe. < / p>

以下是代码:

//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();

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

来自JPanel (Java 2 Platform SE v1.4.2),它说:

  

警告:此类的序列化对象与将来的Swing版本不兼容。当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。从1.4开始,java.beans包中添加了对所有JavaBeans TM 的长期存储的支持。请参阅XMLEncoder

答案 1 :(得分:1)

JPanelmyobject实例)的实现具有对其他对象的引用(例如私有字段),即没有实现Serializable。而这正是导致异常的其他对象。

答案 2 :(得分:1)

正如@Xeon所说,为myobject提供impl。正如您所说的异常来自Object类,这仅仅意味着您的类或任何类成员ie字段(它是一个对象,而不是一个premitive类型)没有实现Serializable接口。 另外你如何在那里创建myobject?直接 对象myobject = ...
要么  myobject = .... ?

确保每个人都实现可序列化。

Object类提供方法但不实现可序列化的接口,否则Java中的每个对象都可以默认序列化!