【发布时间】:2012-06-06 18:25:31
【问题描述】:
我编写了一个类,它覆盖了 Object 类中的 equals(Object) 方法,以使用该对象的实例值将该类类型的对象与该类类型的其他对象进行比较。
当我将对象的一个实例作为键放在 HashMap 中,然后以新的但相同的对象作为键在映射上调用 get(Object) 时,它返回 null。
我尝试将一个新的、相同的对象传递给 equals 方法,它返回 true,所以问题不在于我的比较代码。
根据我通过调试收集的信息,我的对象中的 equals(Object) 方法从未被调用过。
但是如果你在HashMap中使用String键,然后将具有相同字符的新实例传递给get(Object),它会成功返回值。
为什么会这样?我需要做什么才能让 HashMap 测试键基于我的 equals 方法?
【问题讨论】:
标签: java object collections hashmap