我不確定這是Java行爲還是流氓GWT行爲。但是在這裏。令人費解的行爲(Java實例,數組和GWT)
我有一個2D矢量類,名爲Vector2。在我的程序中,我對由這個類的實例表示的二維粒子進行了一些模擬。我有兩個Vector2,m_x和m_oldx數組,它們是另一個類的成員,並具有一些處理功能。這部分功能是以下內容,我非常以自己的行爲感到困惑:
Vector2 old = m_x[i];
Vector2 test = new Vector2(9.0f,9.0f);
m_x[i] = test;
// 1: at this point, m_x[i]'s values are 9.0,9.0
m_oldx[i] = old;
// 2: at this point, m_x[i]'s values are 100.0,100.0 - their original values before I assigned test to m_x[i]!
所以基本上,似乎憑藉的是我給你舊到m_oldx陣列,m_x [I]」事實s值被重置爲其原始值!它不再等於我之前分配給它的測試變量。
當然,這不可能是正確的?但這就是我發生的事情。我應該再次說我在這裏使用了GWT - 即這個代碼被Google編譯器編譯成Javascript。這是正常的java行爲還是GWT做錯了什麼?感謝您的幫助......撕裂了我的頭髮:(
我懷疑還有其他事情在這裏發生。你可以在這裏發佈一個簡短的測試用例來顯示行爲嗎?另外,這個數據中的類是否被多個線程使用? – 2010-06-23 19:18:23
你能給我們提供你創建m_x和M_oldx的代碼嗎? – tlayton 2010-06-23 19:19:33