Я не уверен, является ли это поведением 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]!
Так что в основном получается, что в силу того факта, что я назначаю old массиву m_oldx, m_x [i] значение возвращается к исходному значению!Он больше не соответствует тестовой переменной, которую я ему назначил ранее.
Конечно, это не может быть правдой?Но это то, что происходит со мной.Я должен еще раз сказать, что я использую GWT здесь - то есть этот код компилируется в Javascript компилятором Google.Это обычное поведение Java или GWT делает что-то не так?Спасибо за любую помощь ... вырвать мои волосы: (