问题描述: 对某个实现了Writeable 序列化接口的类增加一些传输的参数,,结果发现JT端始终无法获得TT端设置的值,且值始终是构造函数中初始化的值,查到最后,发现是序列化问题。
每个实现了Writeable 接口的类,都要实现write函数和readFields,一个是将该对象中的参数序列化入发送参数构造的Call对象,一个是从Call对象中将参数读取。
新增参数没有在这两个函数中加入序列化的过程的话,就会发现读取的值始终不对,因为缺少以上两个函数,所以无法正确的序列化写入和在JT端读取并构造新的对象。
此外,还需注意,write函数和readFields对象属性时,顺序要一致,比如write时先写一个int,再写一个double ,读的时候应按照同样顺序读进来,先读int,再读double ,否则会报
java.io.EOFException
at
java.io.DataInputStream.<wbr>readFully(DataInputStream.<wbr>java:197)</wbr></wbr>
之类的错误。
Blaaaaaaa............
以前遇到过这个问题,当时解决了,今天又忘了,白白折腾了一个小时!
本文探讨了在使用Writeable接口进行对象参数序列化传输时遇到的问题,包括序列化过程的必要性、write函数与readFields的正确使用顺序,以及可能导致java.io.EOFException的常见错误。通过实例分析,提供了解决此类问题的方法。
1万+

被折叠的 条评论
为什么被折叠?



