1. import java.io.*;
2. public class Foo implements Serializable {
3. public int x, y;
4. public Foo( int x, int y) { this.x = x; this.y = y; }
5.
6. private void writeObject( ObjectOutputStream s)
7. throws IOException {
8. s.writeInt(x); s.writeInt(y)
9. }
10.
11. private void readObject( ObjectInputStream s)
12. throws IOException, ClassNotFoundException {
13.
14. // insert code here
15.
16. }
17. }
Which code, inserted at line 14, will allow this class to correctly
serialize and deserialize?
A. s.defaultReadObject();
B. this = s.defaultReadObject();
C. y = s.readInt(); x = s.readInt();
D. x = s.readInt(); y = s.readInt();
Answer: D
谁来给我讲讲这道题什么意思,看不太懂。
  顺便说一下C选项为什么不对~~谢谢~~

解决方案 »

  1.   

    在序列化的时候,writeObject与readObject之间是有先后顺序。readObject将最先write的object read出来。
    可以理解为先进先出
      

  2.   

     s.writeInt(x); s.writeInt(y) 写进先X后Y, 读也是一个顺序
      

  3.   

    这段代码先通过writeInt()方法些入x,y,读的时候顺序也要求是一样的.
      

  4.   

    writeObject与readObject之间是有先后顺序。readObject将最先write的object read出来。 
    不然如果顺序不一样,就可能发生写了进去但是没有读出来的情况