我一直在開發一個聊天客戶端/服務器來熟悉java,而且我遇到了一個我不明白的邏輯錯誤。通過ObjectStreams發送的對象不保留其字段值?
我通過ObjectOutputStream(消息對象,請參閱ref)發送一個對象,該對象包含字段和另一個對象,其中有兩個字段(用戶對象)。在發送之前,使用調試器,我知道每個字段都已正確設置。在接收端,除了User類的某個字段之外,所有的東西都被正確設置了,它們被重置爲程序中另一個用戶對象的相同字段的值。我檢查過他們是否由於某種原因沒有共享引用,但是UserReceived.equals(UserInProgram)返回false(沒有重寫equals方法)。
注意:客戶端中唯一一個用戶的其他實例(僞字段似乎在刪除收到的某個原因)位於另一個包中,並設置爲私有。的代碼
相關位:
消息類別,這是通過將流的發送和接收:http://codepaste.net/tiuxu7
用戶類,字段「僞」似乎是因某種原因復位:http://codepaste.net/33m97j
顯示我如何發送/接收對象的代碼:http://codepaste.net/frxcv7
在這兩者之間共享的服務器,客戶端和庫的完整源代碼可以在github.com/TisButMe
的鏈接不爲我工作。如果你在你的問題中包含代碼會更好。 – Kevin 2013-04-11 01:35:16