java.util.concurrent.atomic.AtomicInteger не переопределяет метод equals так же, как java.lang.Integer?

Я сталкивался со сравнением AtomicInteger экземпляров в своем коде и не нашел переопределенных методов равенства. Однако java.lang.Integer обеспечивает реализацию методов equals/hashCode.

Пользователи должны выбрать альтернативный путь сравнения int с методами get() или getInt().

Мой вопрос в том, что остановило сэра. Дуг Ли не переопределять методы equals/hashCode? Я уверен, что для этого есть веские причины, о которых я не знаю.


person Maas    schedule 07.01.2015    source источник


Ответы (1)


Объекты AtomicInteger являются изменяемыми, и этого достаточно, чтобы не переопределять хэш-код и эквиваленты.

Не рекомендуется использовать изменяемые объекты в качестве ключей для Карт, и, следовательно, нет причин переопределять хэш-код и, следовательно, равные.

person Pandiri    schedule 07.01.2015