У меня возникает эта проблема при попытке добавить объект в связанный список (java util). У меня есть классы Doctor и Patient , оба наследуются от абстрактного class Person
public abstract class Person {
private LinkedList<Appointment> scheduledAppointments = new LinkedList<Appointment>();
//irrelevant code
public boolean addAppointment(Appointment appointment){
return this.scheduledAppointments.add(appointment);
}
у атрибута участников есть врач и пациент в связанном списке.
public class Appointment {
private ArrayList<Person> participants = new ArrayList<Person>();
...
public Appointment(Person doctor, Person patient, int day, int month, int year, double startHour, Procedure procedure) {
this.participants.add(doctor);
this.participants.add(patient);
...
}
public void addAppointmentToParticipants(){
for (Person person : participants) {
person.addAppointment(this);
}
}
проблема возникает, когда Я пытаюсь добавить встречу для каждого из участников: Method threw 'java.lang.StackOverflowError' exception. Cannot evaluate Appointment.toString()
, когда я отлаживаю его, я вижу, что исключение возникает в LinkedList. java , особенно в строке size ++
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
Я не понимаю, почему у меня возникла эта проблема, и при чем здесь «toString» ...