java - 如何通过组合键的哈希码来计算 Pojo 的哈希码

标签 java hashcode pojo

<分区>

假设我有一个具有 String 类成员的 POJO:

class POJO {
  String name, address, emailId;
  equals() {

  }
  hashCode() {
    // How?    
  }
}

我如何组合我的字符串的 hashCode 以形成 POJO 的 hashCode

最佳答案

Java 7 有一个实用方法来创建适合大多数用途的哈希码:

return Objects.hash(name, address, emailId);

您仍然需要确保您的 equals 方法是一致的。这两种方法可能如下所示:

@Override
public int hashCode() {
    return Objects.hash(name, address, emailId);
}

@Override
public boolean equals(Object obj) {
    if (obj == null) return false;
    if (getClass() != obj.getClass()) return false;
    final POJO other = (POJO) obj;
    if (!Objects.equals(this.name, other.name)) return false;
    if (!Objects.equals(this.address, other.address)) return false;
    if (!Objects.equals(this.emailId, other.emailId)) return false;
    return true;
}

关于java - 如何通过组合键的哈希码来计算 Pojo 的哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18052565/

相关文章:

java - 提取多个分隔符之间的文本

C# DotNetZip 错误 : The final hash has not been computed. 在 Ionic.Zip.WinZipAesCipherStream.get_FinalAuthentication()

java - Effective Java hashCode() 实现中的位移位

java - 创建后如何使用StoredProcedure在数据库中设置存储过程的名称

java - 在 Eclipse Neon 上运行 Apache UIMA Ruta Workbench 2.5.0 时出错

java - NoClassDefFound错误: org/apache/nifi/registry/VariableRegistry while running nifi test cases

java - 类型 ImageView 的方法未定义

Java - 如何撤消 hashCode() 并读取为字符串?

java - Pojo 类(XML 到对象)

java - 即使使用 INNER JOIN FETCH 查询也会出现意外的 JavaAssistLazyInitializer