hashCode e é igual a Collections.unmodifiableCollection ()
oCollections
classe tem um número de métodos auxiliares estáticos para fornecer exibições somente leitura de vários tipos de coleção, comounmodifiableSet()
, unmodifiableList()
, etc. Para esses objetos de vista, ohashCode()
eequals()
métodos encaminham chamadas para a coleção subjacente ... Com uma exceção estranha:unmodifiableCollection()
.
O JavaDocafirma explicitamente:
A coleção retornada nãonão passar o hashCode e é igual às operações através da coleção de apoio, mas depende deObject
'sequals
ehashCode
métodos. Isso é necessário para preservar os contratos dessas operações, no caso de a coleção de apoio ser um conjunto ou uma lista.
Minha pergunta: wtf isso está falando? Se a coleção de apoio for um conjunto ou uma lista, eu esperaria um comportamento consistente comunmodifiableSet()
eunmodifiableList()
. Como isso violaria os contratos hashCode / equal?