Что такое Java-эквивалент интерфейса IEquatable <T>в .NET? - PullRequest
22 голосов
/ 10 июня 2010

Что такое Java-эквивалент IEquatable интерфейса .NET?

Ответы [ 4 ]

18 голосов
/ 10 июня 2010

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

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

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

8 голосов
/ 12 июля 2010

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

2 голосов
/ 23 декабря 2011

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

1 голос
/ 31 октября 2014

В Гуаве есть эквивалентный тип, называемый Эквивалентность .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...