Я пишу кое-что на Java, и в последнее время у меня возникли проблемы. Вкратце, мне нужно сравнить объект, который я создал, с другим экземпляром этого самого класса, который я инстанцировал ранее, с другими данными.
выглядит так:
a newA = null;
a oldA = null;
while(someBreakCondition) {
newA = new a();
newA.x = getSomeValue();
// now i want to compare the two objects
if(oldA != null) {
if(newA.time != oldA.time) {
// ...
}
}
// now my newA gets to be my oldA, since in the next iteration, a new newA is created
oldA = newA;
}
с классом А:
class a {
public long time;
public int x;
public a() {
time = System.currentTimeMillis;
}
}
проблема в том, что я обнаружил, что значения из newA всегда равны значениям из oldA. так что я думаю, что что-то пошло не так с передачей ссылок на объекты в последней строке цикла ...
я думал, что Java всегда передает ссылки на объекты, если явно не вызывается copy ()?
если это имеет значение: этот код работает на Android - не знаю, если dalvik vm портится с этим ...