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