相关疑难解决方法(0)

equals和hashCode:Objects.hash方法被破坏了吗?

我使用的是Java 7,下面有以下类.我实现equalshashCode正确的,但问题是,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)

java equals hashcode

5
推荐指数
2
解决办法
3159
查看次数

标签 统计

equals ×1

hashcode ×1

java ×1