Hi,
also das Fragezeichen im Titel kann man sich auch wegdenken.
Ich hab eine Klasse, die von ArrayList erbt. Sie verändert ihre Objekte nicht, aber die Benutzung von get() liefert unter Umständen (gewollt) veränderte Objekte. Man kann über Objekte der Klasse wunderbar iterieren und da geht alles glatt. Aber ich möchte gerne die Objekte dieser Collection in eine ArrayList übertragen und zwar so, dass die veränderten Objekte in die ArrayList eingetragen werden. Mit einer foreach-Schleife und ArrayList#add klappt das auch wunderbar, aber wozu gibt es bitteschön addAll bzw. den parametisierten Konstruktor, dacht ich mir. Leider wird die ArrayList auf diese Weise mit den originalen Objekten der unterliegenen ArrayList gefüllt, also konkludiere ich daraus, dass addAll bzw. der Konstruktor nicht/nicht richtig über die übergebene Collection iterieren und auch nicht ihr get() verwenden.
Liege ich da richtig, und vor allem: muss ich extra dieses oder ein anderes Workaround (z.B. in meiner neuen Listenklasse addAll neu implementieren und benutzen) machen, um das Problem zu beheben?
also das Fragezeichen im Titel kann man sich auch wegdenken.
Ich hab eine Klasse, die von ArrayList erbt. Sie verändert ihre Objekte nicht, aber die Benutzung von get() liefert unter Umständen (gewollt) veränderte Objekte. Man kann über Objekte der Klasse wunderbar iterieren und da geht alles glatt. Aber ich möchte gerne die Objekte dieser Collection in eine ArrayList übertragen und zwar so, dass die veränderten Objekte in die ArrayList eingetragen werden. Mit einer foreach-Schleife und ArrayList#add klappt das auch wunderbar, aber wozu gibt es bitteschön addAll bzw. den parametisierten Konstruktor, dacht ich mir. Leider wird die ArrayList auf diese Weise mit den originalen Objekten der unterliegenen ArrayList gefüllt, also konkludiere ich daraus, dass addAll bzw. der Konstruktor nicht/nicht richtig über die übergebene Collection iterieren und auch nicht ihr get() verwenden.
Liege ich da richtig, und vor allem: muss ich extra dieses oder ein anderes Workaround (z.B. in meiner neuen Listenklasse addAll neu implementieren und benutzen) machen, um das Problem zu beheben?