Lớp Collections
có một số phương pháp helper tĩnh để cung cấp chỉ đọc quan điểm của loại bộ sưu tập khác nhau, chẳng hạn như unmodifiableSet()
, unmodifiableList()
, vv Đối với các đối tượng xem, hashCode()
và equals()
các phương thức chuyển tiếp cuộc gọi đến bộ sưu tập cơ bản ... Với một ngoại lệ lẻ: unmodifiableCollection()
.hashCode và equals cho Collections.unmodifiableCollection()
Các javadoc explicitly states:
Bộ sưu tập trở lại làm không vượt qua hashCode và equals hoạt động thông qua các bộ sưu tập ủng hộ, nhưng dựa vào
equals
vàhashCode
phương phápObject
's. Điều này là cần thiết để bảo tồn các hợp đồng của các hoạt động này trong trường hợp bộ sưu tập sao lưu là tập hợp hoặc danh sách.
Câu hỏi của tôi: wtf là cái này nói về ?? Nếu bộ sưu tập sao lưu là tập hợp hoặc danh sách, tôi mong đợi hành vi phù hợp với unmodifiableSet()
và unmodifiableList()
. Điều đó sẽ vi phạm các hợp đồng hashCode/equals như thế nào?