本Collections类有很多的静态辅助方法来提供只读视图各种集合类型,例如unmodifiableSet(),unmodifiableList()等等.对于这些视图对象中,hashCode()和equals()方法前调用底层集合......随着一个奇怪的例外:unmodifiableCollection().
JavaDoc 明确指出:
返回的集合并没有将hashCode并传递给底层集合等于操作,但依靠
Object的equals和hashCode方法.在后备集合是集合或列表的情况下,这对于保留这些操作的合同是必要的.
我的问题:wtf是这个在谈论?如果支持集合是集合或列表,我希望行为与unmodifiableSet()和一致unmodifiableList().怎么会违反hashCode/equals合约?