.NET的IEquatable接口的Java等价物是什么?
答案 0 :(得分:18)
不幸的是我不相信有一个 - 在提供自定义相等比较的哈希映射等方面很痛苦:(
显然Comparable<T>
相当于IComparable<T>
和Comparator<T>
IComparer<T>
,但我不相信IEqualityComparer<T>
和{{{ 1}}。
可能有第三方图书馆提供相同类型的界面和使用它们的地图当然......
答案 1 :(得分:7)
如果您只是在寻找实现equals()
方法的界面,则可以直接覆盖object.equals()
方法。
答案 2 :(得分:2)
IEquatable<T>
接口主要用于存储许多可能是未装箱结构类型的实例的泛型类;它对于密封类型有一定的用处,而且对于未密封的类型而言比无用的更糟糕。因此,在Java中实现IEquatable<T>
实际上没有任何意义。
答案 3 :(得分:1)
Guava中有一个名为Equivalence<T>的等效类型。