Я не уверен, что это поведение Java или поведение GWT изгоев. Но здесь идет.Непонятное поведение (примеры Java, массивы и GWT)
У меня есть класс для 2D векторов, называемый Vector2. В моей программе я делаю некоторое моделирование 2D-частиц, представленных экземплярами этого класса. У меня есть два массива 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 [я]» s значение возвращается к исходному значению! Он больше не равен тестовой переменной, которую я назначил ранее.
Несомненно, что это не так? Но это то, что происходит для меня. Я должен еще раз сказать, что я использую GWT здесь, то есть этот код компилируется с Javascript компилятором Google. Является ли это регулярным поведением Java или GWT делает что-то неправильно? Спасибо за любую помощь ... разрывают мои волосы :(
Я подозреваю, что здесь происходит что-то еще. Можете ли вы опубликовать короткий тестовый пример здесь, чтобы показать поведение? Кроме того, класс с этими данными в нем используется более чем одним потоком? –
Не могли бы вы дать нам код, где вы создаете m_x и M_oldx? – tlayton