LinkedList успешно включает объект, но, по-видимому, стирает сам себя - PullRequest
0 голосов
/ 27 апреля 2020

Поэтому я пытаюсь разработать программу, которая включает объекты в связанный список указанного объекта. В той же программе у меня есть несколько других списков, которые отлично работают с теми же логами c, что и этот.

Однако после того, как я проверил, что мой метод passByStation () работает нормально, он возвращает true, когда Я использую метод passages.add (), я пытаюсь использовать этот список для печати объектов в методе stopToString (), и он ничего не находит в моем списке Passages.

Может кто-нибудь помочь мне разобраться в чем проблема?

public class Train {
String acronym;
private final LinkedList<Passage> passages; //useful list for method getLast()
/**
 * 
 * @param acr train acronym
 */
public Train(String acr){
    acronym = acr;
    passages = new LinkedList<>();
}

public boolean passByStation(Station st, int lin, boolean to){ //does it make sense not to receive passage id as an argument?
   int id = passages.size();
   Passage pass = new Passage(id, to, lin, st, this);
   passages.add(pass);
   if(passages.isEmpty()) {
       System.out.println("list is empty after adding");
       return false;
   } else System.out.println("passByStation works");
   return true;

public String stopsToString(){ 
 String str = "train [" + acronym + "]: ";
   if(passages.isEmpty()) System.out.println("for some reason, passages is empty even though passByStation returns true for the adding of the object"); 
   for(Passage pass: passages){
       if(pass.hasStop()) str += "" + pass.toString();
   }
       return str;
   }
...