我不确定这是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