日期:2014-05-20  浏览次数:20652 次

Serializable 问题
import   java.io.*;
class   Player
{
Player(){System.out.println( "p ");}
}
public   class   Cardplay   extends   Player   implements   Serializable{

Cardplay(){System.out.println( "c ");}

public   static   void   main(String[]   args)   {
Cardplay   c1=new   Cardplay();
try{
                                          FileOutputStream   fos=new   FileOutputStream( "play.txt ");
      ObjectOutputStream   os=new   ObjectOutputStream(fos);
os.writeObject(c1);
os.close();

        FileInputStream   fis=new   FileInputStream( "play.text ");
        ObjectInputStream   is=new   ObjectInputStream(fis);
c1=(Cardplay)is.readObject();
is.close();

}
catch   (Exception   x){}

}

}
-----------------------------------
按照书里写的反串行时会运行父类的构造函数。那么结果应该是   pcp   可我在运行时结果老是   pc.   为什么呢(我的JDK   1.6)

------解决方案--------------------
我没记错的话
从文件中把对象读取出来的时候 是不会执行构造方法的。
构造方法是在实例化一个对象的时候调用的
你只是把对象从文件里读出来而已。
------解决方案--------------------
建议:
catch (Exception x){

}
改成:
catch (Exception x){
x.printStackTrace();
}
//不要轻易的去除异常的处理.否则不利于找到程序的问题.