序列化时出现Exception in thread "main" java.io.NotSerializableException: Customer错误

hyuga1232007 2011-01-11 08:50:28

下面是代码
class Customer implements Serializable{
private String name;
private int age;

public Customer(String name,int age){
this.name=name;
this.age=age;
}

public String toString(){return "name="+name+",age="+age;
}
在序列化时
Customer obj3=new Customer("Tom",20);
out.writeObject(obj3);
弹出错误
Exception in thread "main" java.io.NotSerializableException: Customer
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at ObjectSaver.main(ObjectSaver.java:15)
...全文
400 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtv0199 2011-01-11
  • 打赏
  • 举报
回复
序列化的问题挺烦的,不知道这个customer这个类有无父类,父类中是否有无参的构造方法,父类中的属性是否都是可序列化的...
这里需要关注好像就这几个吧,父类,无参构造方法,序列化标识,以及属性是否可序列化,如果属性中含有不可序列化的类,要标记成transient
mtv0199 2011-01-11
  • 打赏
  • 举报
回复
再加个无参的构造方法
paullbm 2011-01-11
  • 打赏
  • 举报
回复
把类改为public的,再自动生成一个serialVersionUID。
mtv0199 2011-01-11
  • 打赏
  • 举报
回复
private static final long serialVersionUID = 1L;
加个这个试试
wzju64676266 2011-01-11
  • 打赏
  • 举报
回复
好像没有问题吧!

写个例子


ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
"t.txt"));

Customer c = new Customer("aaa", 11);
out.writeInt(1);
out.writeObject(c);

Customer c2 = new Customer("bbb", 12);
out.writeInt(2);
out.writeObject(c2);
out.flush();



文件流关闭我这里就不写了
龙四 2011-01-11
  • 打赏
  • 举报
回复
就这些确实没能看出问题

重新编译一下你的Customer试试?
hyuga1232007 2011-01-11
  • 打赏
  • 举报
回复
哪位高手看看???

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧