并不是所有的对象都可以被serializalbe 比如:一个数据库连接不能被放八延迟的动画中并在以后被唤醒(显然它应处于和数据库管理系统中的相应对象建立通信的状态)。还有,线程连接至底层的操作系统线程,不能简单地被分解和重组,这种情况下,包含非serializale对象的对象必须提供其再次被边接或重启的方式,另外必须对具有关键字transient的对象声明变量引用以防止正常序列化过程试图对其进行处理
解决方法,在类中写个readObject方法如下定义;
private void readObject(ObjectInputStream in) throws IOException {

解决方案 »

  1.   

    private void readObject(ObjectInputStream in) throws IOException {
        try{
              in.defaultReadObject();
        }
        catch(ClassNotFoundException e)
             throw new IOException(e.getMessage());
        }
        start();
    }
      

  2.   

    哦,谢谢先,那个start()是哪里的方法? 我定义了这个以后好像并没有做什么操作? 看了你说的感觉明白了不少其实还是没什么实际的感觉,呵呵
      

  3.   

    不是PID吧,是UID吧.UID是实现Serializable的类的一个version id.如果序列化时的UID和反序列化时class的UID不同, 反序列化会错.