我試圖理解反序列化如何與上面的例子一樣:在java中的反序列化過程中如何使用字段值?
class A implements Serializable{
int x=3;
long y=4;
short z=5;
}
public class B extends A{
public B(){
x=7;
}
public String toString(){
return ""+x+""+y+""+z;
}
public static void main(String[] args) {
B b=new B();
try{
FileOutputStream fos=new FileOutputStream("ser.ser");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(b);
oos.close();
System.out.println(b);
FileInputStream fis=new FileInputStream("ser.ser");
ObjectInputStream ois=new ObjectInputStream(fis);
b=(B)ois.readObject();
ois.close();
System.out.println(b);
}
catch(Exception e){
e.printStackTrace();
}
}
}
這是產生745
但是,當我implement serializable in B
類的結果是345
我不能夠理解的差異系列化B類正在製作...
你說的是反序列化的情況嗎?如果是,那麼你可以添加序列化和反序列化的代碼嗎? –
是的,謝謝...... – Rajesh