来自多个字段的 Java hashCode

给定一个这样的类:


class MyObject {

  private String id1;

  private String id2;


  @Override

  public boolean equals(Object o) {

    if (o == this) return true;

    if (!(o instanceof MyObject)) {

        return false;

    }

    MyObject other = (MyObject) o;

    return id1.equals(other.id1) || id2.equals(other.id2);

  }

}

请注意,相等不依赖于两个字段匹配,任何一个字段都有效。hashCode这个类的合适实现是什么?


蝴蝶刀刀
浏览 248回答 1
1回答

天涯尽头无女友

这不是 的有效实现equals。具体来说,它违反了传递性要求。因此hashCode,除了使所有实例具有相同的哈希码之外,您也无法“正确”实现。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java