Java 通过ObjectStreams发送的对象不保留其字段值?

Java 通过ObjectStreams发送的对象不保留其字段值?,java,networking,serialization,objectoutputstream,objectinputstream,Java,Networking,Serialization,Objectoutputstream,Objectinputstream,我一直在开发一个聊天客户端/服务器来熟悉java,但我遇到了一个我不理解的逻辑错误 我通过ObjectOutputStream(Message对象,请参见ref)发送一个对象,其中包含字段,另一个对象有两个字段(User对象)。在发送之前,使用调试器,我知道每个字段都已正确设置。在接收端,所有内容都已正确设置,但用户类的一个字段除外,该字段以某种方式重置为程序的另一个用户对象的同一字段的值。我已经检查了它们是否出于某种原因没有共享引用,但是UserReceived.equals(UserInPr

我一直在开发一个聊天客户端/服务器来熟悉java,但我遇到了一个我不理解的逻辑错误

我通过ObjectOutputStream(Message对象,请参见ref)发送一个对象,其中包含字段,另一个对象有两个字段(User对象)。在发送之前,使用调试器,我知道每个字段都已正确设置。在接收端,所有内容都已正确设置,但用户类的一个字段除外,该字段以某种方式重置为程序的另一个用户对象的同一字段的值。我已经检查了它们是否出于某种原因没有共享引用,但是UserReceived.equals(UserInProgram)返回false(没有过度使用equals方法)

注意:客户机中用户的唯一其他实例(该伪字段似乎由于某种原因正在删除接收到的实例)位于另一个包中,并设置为private

相关代码位:

通过流发送和接收的消息类:

用户类,该字段“pseudo”似乎由于某种原因被重置:

显示如何发送/接收对象的代码:


这两者之间共享的服务器、客户端和库的完整源代码可以在github.com/TisButMe上找到。听起来要重置的字段是一个
静态
字段<代码>静态
字段不序列化,因为它们属于类而不是对象。有关更多信息,请参阅。

稍微晚了一点,但我遇到了这个问题并解决了它。。只需在
ObjectOutputStream

上调用
reset
,链接对我不起作用。如果您在问题中包含代码会更好。