一个集合只包含一个实体社区的对象,我使用两个具有相同值的对象,其中一个对象存储在该集合中
Set<Community> communties = template.get(User.class, "1").getCommunities();
Community com = template.get(Community.class, 1);
for(Community community : communties)
System.out.println(community.equals(com));
System.out.println(communties.contains(com));
First Statement打印true
,但Second Statement打印false
。为什么呢?
答案 0 :(得分:2)
您必须覆盖hashCode()以及equals(),否则,Set将找不到该对象的正确存储桶,甚至不会到达equals()比较。
您可以使用Eclipse“Source”菜单生成相当不错的equals()和hashCode()方法。