什么是.NET的IEquatable <t>接口的Java等价物?</t>

时间:2010-06-10 06:25:36

标签: java .net

.NET的IEquatable接口的Java等价物是什么?

4 个答案:

答案 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>的等效类型。