该类Collections
有许多静态辅助方法来提供各种集合类型的只读视图,例如unmodifiableSet()
,unmodifiableList()
等。对于这些视图对象,hashCode()
andequals()
方法将调用转发到底层集合......有一个奇怪的例外:unmodifiableCollection()
.
JavaDoc明确指出:
返回的集合不会将hashCode 和 equals 操作传递给支持集合,而是依赖于
Object
'sequals
和hashCode
方法。在支持集合是集合或列表的情况下,这对于保留这些操作的合同是必要的。
我的问题:这是在说什么?如果支持集合是集合或列表,我希望行为与unmodifiableSet()
and一致unmodifiableList()
。这将如何违反 hashCode/equals 合约?