下面是代码
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)

解决方案 »

  1.   

    就这些确实没能看出问题重新编译一下你的Customer试试?
      

  2.   

    好像没有问题吧!写个例子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();文件流关闭我这里就不写了
      

  3.   

    private static final long serialVersionUID = 1L;
    加个这个试试
      

  4.   

    把类改为public的,再自动生成一个serialVersionUID。
      

  5.   

    序列化的问题挺烦的,不知道这个customer这个类有无父类,父类中是否有无参的构造方法,父类中的属性是否都是可序列化的...
    这里需要关注好像就这几个吧,父类,无参构造方法,序列化标识,以及属性是否可序列化,如果属性中含有不可序列化的类,要标记成transient