Что такое Java-эквивалент .NET IEquatable <T> Interface?

Что такое Java-эквивалент .NET IEquatable Interface?

Ответ 1

К сожалению, я не считаю, что есть один - это боль в плане предоставления хэш-карт и т.д. с пользовательскими сопоставлениями равенства: (

Очевидно, что Comparable<T> эквивалентно IComparable<T> и Comparator<T> для IComparer<T>, но я не думаю, что есть эквивалент IEqualityComparer<T> и IEquatable<T>.

Там могут быть сторонние библиотеки, предоставляющие такой же интерфейс и карты, которые их используют, конечно...

Ответ 2

Если вы просто ищете этот интерфейс для реализации метода equals(), вы можете переопределить метод object.equals() напрямую.

Ответ 3

Интерфейс IEquatable<T> в первую очередь полезен для универсальных классов, в которых хранятся многие примеры типов распакованных типов; он незначительно полезен с закрытыми типами и хуже, чем бесполезно с незапечатанными типами. Таким образом, на самом деле не было бы смысла внедрять IEquatable<T> в Java.

Ответ 4

В Guava есть эквивалентный тип, называемый Equivalence <T> .