【发布时间】:2016-10-09 21:38:37
【问题描述】:
我目前正在使用 java.util.HashSet 来存储一些反向引用。在测试类中,我有以下代码:
System.out.println("==========================================");
for (Sequence<? extends Item> seq_i: m_sequences_references)
{
// Check hashCode
System.out.println(seq_i.hashCode() == seq.hashCode());
// Check reflexivity (o == e and e == o)
System.out.println(seq_i.equals(seq));
System.out.println(seq.equals(seq_i));
// Check the default equal
System.out.println(seq == seq_i);
}
System.out.println(m_sequences_references.contains(seq));
System.out.println("==========================================");
实现的结果是
==========================================
true
true
true
true
false
==========================================
我没有重写任何方法(hashCode、equals)并检查我是否也没有错误地创建 equals(AnythingButObject xx) 方法。
所以我的问题如下:我知道我做错了什么,但我不知道现在要真正检查什么,您有什么建议吗?
非常感谢
【问题讨论】: