我正在研究依賴於唯一對象的程序。我在兩個地方使用同一個對象,並且在一個地方完成更新時,這應該反映在另一個地方。獨特的java對象 - 運行和調試中的不同行爲
如果我調試程序(在eclipse中),一切正常。我的兩個對象引用都指向同一個對象(ojbect1==object2
返回true
)。如果我運行完全相同的程序(在eclipse中),則兩個參考文件中都有不同的對象(相同的比較顯示爲false
)。
該對象被多次實例化,但其中一個實例保存在TreeMap中並稍後拾取。但是,當我撿起它時,有時(如上所述)它是一個不同的對象,在此期間不會對原始對象進行任何更改。
有沒有人有這個想法?
我不能在較小的範圍內複製問題,所以很遺憾我無法在此處發佈代碼。
所以,只有當你在eclipse之外運行時纔會出現問題?或只有在發佈模式下運行它? –
Object.hashCode()在調試器中檢查唯一性(==,不是.equals())是不可靠的。使用System.identityHashCode()。這幾乎是正確的。 –
你確定你的hashCode()不是罪魁禍首嗎? – codeMan