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

谁来帮我讲解一下这道题~~~谢谢
Java code
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选项为什么不对~~谢谢~~

------解决方案--------------------
有先后顺序啊
------解决方案--------------------
在序列化的时候,writeObject与readObject之间是有先后顺序。readObject将最先write的object read出来。
可以理解为先进先出
------解决方案--------------------
s.writeInt(x); s.writeInt(y)

 写进先X后Y, 读也是一个顺序

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