Tôi đã nghiên cứu Java là truyền tham chiếu đối tượng theo giá trị, và để tạo một bản sao cục bộ của một đối tượng, tôi có thể làm bản sao() hoặc copy-constructor. Tôi cũng đã xem bản sao sâu/nông cũng như một số bài đăng trên stackoverflow.Làm thế nào để tạo một bản sao đối tượng ArrayList là loại Danh sách?
Bây giờ tôi nhìn vào ví dụ:
List<String> list = new ArrayList<String>();
String one = "one"
list.add(one);
Vài điều tôi đọc chỉ đề cập đến mà ArrayList thực hiện cloneable nhưng không thực sự nói như thế nào để tạo ra một bản sao cục bộ của "danh sách" nếu loại là Danh sách không ArrayList mà không thực hiện cloneable.
Tôi có thể gọi clone() nếu "danh sách" là loại ArrayList.
ArrayList<String> list = new ArrayList<String();
list.clone();
Nhưng nếu loại là Danh sách, tôi không thể.
Tôi có nên chỉ sử dụng hàm tạo bản sao như dưới đây để tạo bản sao cục bộ không? Cách tốt nhất để tạo bản sao "danh sách" là gì?
List<String> tmpList = new ArrayList<String>(list);
Tôi không hiểu. Tất cả các "vấn đề liên quan đến Cloneable" là gì, và tại sao chúng lại tệ đến mức bạn không bao giờ nên thậm chí _invoke_ nó? –
@RussellSilva, http://jtechies.blogspot.hu/2012/07/item-11-override-clone-judiciously.html –