Tôi có một lớp không thay đổibất biến của một lớp khi một biến thể hiện dưới dạng mảng danh sách
Giả sử tôi có phương thức getter cho biến thành viên kiểu ArrayList. Trong trường hợp đó khi tôi nhận được một tham chiếu đến biến đó, tôi có thể thêm hoặc xóa một phần tử khỏi nó. Trong trường hợp đó bất biến dường như bị vi phạm.
Có ai có thể giải thích khái niệm này chi tiết không?
Xem http://stackoverflow.com/questions/8892350/immutable-vs-unmodifiable-collection – Zaki
Xem thêm "Java hiệu quả" của Joshua Bloch, Mục 24: Tạo bản sao phòng thủ khi cần. Chương này có sẵn trực tuyến [tại đây] (http://www.informit.com/articles/article.aspx?p=31551&seqNum=2) – mike9322
Nếu lớp học của bạn được cho là không thể thay đổi, hãy lưu tham chiếu vào danh sách _in class_ của bạn (sau khi sao chép) như một thể hiện của 'UnmodifiableList'. Không cần thêm các bản sao phòng thủ, và nó ngăn không cho lớp _your_ sửa đổi nó, trong quá trình bảo trì. –