我有一个我无法解决的错误。我的 HashMap 有一些条目,但我无法通过密钥检索它们。键确实有 hashCode 和 equals 被覆盖,但据我所知,它们工作正常。他们正在使用 eclipse 的生成器实现以下代码证明了这个问题。HashMap 拒绝承认它包含自己提供的密钥。get 等其他方法也不起作用。
HashMap<SimpleTurn, Turn> turns = node.turns;
System.out.println("verifying HashMap turns");
System.out.println(" class : "+turns.getClass().getName()+" "+turns.getClass().getCanonicalName());
for(SimpleTurn sp : turns.keySet()){
System.out.println("Am I equal to myself : "+sp.equals(sp));
System.out.println("Do I belong to my collection : "+turns.containsKey(sp));
}
请注意,我明确尝试检查 equals 的实现,它似乎工作正常。上述代码的输出是:
verifying HashMap turns
class : java.util.HashMap java.util.HashMap
Am I equal to myself : true
Do I belong to my collection : false
Am I equal to myself : true
Do I belong to my collection : false
Am I equal to myself : true
Do I belong to my collection : false
这种行为在整个代码中是一致的,什么可能导致这种行为?关于我应该寻找什么的任何提示?非常感谢