Я очень новичок в Java, поэтому извините, если это слишком глупо для вас. Итак, у меня есть класс с именем Construct , который имеет переменную экземпляра previousState . У меня есть сеттер в этом классе, с подписью setPreviousState .
Затем в другом классе я устанавливаю предыдущее состояние объекта Construct с этим кодом:
ArrayList<Construct> sequence = new ArrayList<Construct>();
do {
Construct minimum = priorityQueue.delMin();
for (Construct neighbor : minimum.neighbors()) {
neighbor.setPreviousState(minimum);
priorityQueue.insert(neighbor);
}
System.out.println(minimum);
if (minimum.isGoalState()) {
// Construct sequence backwards and return it
sequence.add(minimum);
while(minimum.previousState() != null) {
sequence.add(0, minimum.previousState());
}
return sequence;
}
} while (true);
Но while(minimum.previousState() != null)
- это бесконечный цикл, потому что previousState()
всегда ссылается на один и тот же объект. Почему?