我使用的是Java 7,下面有以下类.我实现equals和hashCode正确的,但问题是,equals返回false主方法下面又hashCode返回两个对象相同的散列码.我可以让更多的眼睛看这堂课,看看我在这里做错了吗?
更新:我Objects.hash用我自己的哈希函数替换了我调用该方法的行:chamorro.hashCode() + english.hashCode() + notes.hashCode().它返回一个不同的哈希码,这是hashCode两个对象不同时应该做的.是Objects.hash方法打破?
对你的帮助表示感谢!
import org.apache.commons.lang3.StringEscapeUtils;
public class ChamorroEntry {
private String chamorro, english, notes;
public ChamorroEntry(String chamorro, String english, String notes) {
this.chamorro = StringEscapeUtils.unescapeHtml4(chamorro.trim());
this.english = StringEscapeUtils.unescapeHtml4(english.trim());
this.notes = notes.trim();
}
@Override
public boolean equals(Object object) {
if (!(object instanceof ChamorroEntry)) {
return false;
}
if (this == object) {
return true;
}
ChamorroEntry entry …Run Code Online (Sandbox Code Playgroud)