Что такое 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> .