Liste mit neu erzeugten Objekten befüllen

r00tUser

Mitglied
Hallo,

ich möchte eine Liste (result) erzeugen, die mit Appointments gefüllt ist. Diese werden in folgender while-Schleife berrechnet und hinzugefügt:

Java:
while(repetitionDateStart.before(oneWeekBeforeEnd)){
				repetitionDateStartInMillis += 604800000;
				repetitionDateStart.setTimeInMillis(repetitionDateStartInMillis);
				printDate(repetitionDateStart);
				repetitionDateEnd.setTimeInMillis(repetitionDateStartInMillis+repetitionDateDuration);
								
				//Appointment newRepeatedDate = new Appointment(getAppointment().getCreator(), repetitionDateStart, repetitionDateEnd, getCalendar());
				result.add(new Appointment(getAppointment().getCreator(), repetitionDateStart, repetitionDateEnd, getCalendar()));
			}

Die Listenlänge ist hinterher korrekt, aber alle Elemente entsprechen dem Letzten. Ich habe die vermutung, es wird nicht in jeder Iterarion ein neues Objekt instanziiert, sondern das alte nur neu beschrieben (wodurch sich die Elemente der Liste verändern ) und in die Liste gehängt.
Wie kann ich in der Schleife unabhängige Objekte instanziieren, die dann in die Liste können?

Beste Grüße,

Niels
 
repetitionDateStart ist ein veränderliches Objekt, alle Appointments zeigen auf dasselbe repetitionDateStart und sehen dessen letzte Änderung. Wie zehn Leute, die zehn Fernbedienungen für denselben Fernsehr haben, und sich wundern, dass immer das letzte eingestellte Programm zu sehen ist 🙂

Dafür gibt es mehrere Lösungsmöglichkeiten: defensives Kopieren in Appointments, repetitionStartDate jedesmal neu erzeugen u.s.w.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben