java.lang.StackOverflowError przy dodawaniu do listy Obiektów

0

Witam, Klase Mieszkanie i Klase Osoba, która jako atrybut posiada Liste typu Mieszkanie. Podczas iterowania po Liście z mieszkaniami chciałbym dodać mieszkanie z listy do listy z obiektu Osoba. Robiłem to chyba na wszystkie możliwe sposoby pętli, w czym problem ?

public class Main {
    public static void main(String[] args) {

        List<Mieszkanie> mieszkania= new ArrayList<>();

        
        Mieszkanie m1=new Mieszkanie(34);
        Mieszkanie m2=new Mieszkanie(348);
        Mieszkanie m3=new Mieszkanie(38);

Osoba o1=new Osoba("Jacek","Kowalski",1229923,"02-943 Warszawa", LocalDate.of(1991,12,12));

 for (int i = 0; i <mieszkania.size() ; i++) {
            o1.wynajetePomieszczenia.add(mieszkania.get(i));                 // w tym miejscu wystepuje błąd
        }

}

public class Osoba {

    private String imie;
    private String nazwisko;
    private Integer pesel;
    private String adres;
    private LocalDate dataUrodzenia;
    List<Mieszkanie> wynajetePomieszczenia=new ArrayList();

}

public class Mieszkanie {

    static int UNIQUE_ID = 0;
    private int uid = UNIQUE_ID++;
    private int powierzchnia;
    private boolean czyWynajete;
    private Osoba najemca;
    List osoby;
    List<Przedmiot> przedmioty;

}

0

ok, doszedłem do tego - chodzi o to ze w mieszkaniu tez mam liste obiektów typu Osoba i osoba która dodaje to mieszkanie do swojej listy sama jest w Liście Obiektu typu Mieszkanie.
Tylko jak to rozwiązać ?

0

Usuń z Osoby wynajęte mieszkania. Po co ci kontrolować 2 listy?

1

Czemu pociąłeś ten kod?! Nie pokazałeś najważniejszego akurat, brawo. Pokaż dokładnie w jaki sposób zapewniasz spójność tych 2 list. Zgaduje że gdzieś bez sensu robisz nowe obiekty zamiast używać referencji do tych istniejacych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1