Estudié Java es pasar referencia de objeto por valor, y para hacer una copia local de un objeto, puedo hacer clone() o copy-constructor. También miré copia profunda/superficial y varias publicaciones en stackoverflow.¿Cómo hacer una copia del objeto ArrayList que es tipo de lista?
Ahora estoy mirando ejemplo:
List<String> list = new ArrayList<String>();
String one = "one"
list.add(one);
Pocos artículos que leí sólo menciona que ArrayList implementa cloneable pero en realidad no dice cómo hacer una copia local de "lista" no si el tipo es Lista arrayList cuales no implementa clonable.
Puedo llamar a clone() si "list" es el tipo de ArrayList.
ArrayList<String> list = new ArrayList<String();
list.clone();
Pero si el tipo es Lista, no puedo.
¿Debo usar el constructor de copias como a continuación para hacer una copia local? ¿Cuál es la mejor manera de hacer una copia de "lista"?
List<String> tmpList = new ArrayList<String>(list);
No lo entiendo. ¿Cuáles son todos los "problemas asociados con Cloneable" y por qué son tan malos que nunca debería invocarlos? –
@RussellSilva, http://jtechies.blogspot.hu/2012/07/item-11-override-clone-judiciously.html –