IntelliJ IDEA 2025.1 Help

生成 equals() 和 hashCode() 向导

使用此向导 生成 equals() 和 hashCode() 方法

条目

描述

Page1

模板

选择预定义的 velocity 模板或点击 浏览按钮 以使用 模板对话框

对于 equals() 方法中的类类型比较,生成

在方法内选择生成的表达式。 将鼠标悬停在问号图标上,以打开提示框,了解每个表达式的优缺点。

instanceof 表达式

  • 允许子类的实例等于超类的实例

  • 允许不同子类的实例相互等同

  • 避免额外的 null 检查

  • 遵循 Liskov 替换原则

getClass()

  • 重写生成的 equals() 方法不会违反其契约

请在可用时使用 getters

如果选择此复选框,将在 equals() 中使用 getters,而不是直接访问字段: getField() 对比 field

点击 下一步 打开下一页。

第 2 页

选择要包含在 equals() 中的字段

请选择用于确定相等性的字段。 只有当所有这里指定的字段值相等时,每个选定字段的值才会被比较,对象才会被认为是相等的。

点击 下一步 打开下一页。

第 3 页

选择要包含在 hashCode() 中的字段

选择字段以生成哈希代码。 请注意,只有包含在 equals() 方法中的字段才能参与创建哈希代码。 默认情况下,会选择所有这些字段,但如果需要,您可以取消选择它们。

点击 下一步 打开下一页。

第 4 页

选择所有非空字段

如果任一所选字段为非原始类型以避免生成不必要的检查,则会出现此页面。 换句话说,如果选中了这些字段的复选框,则假定该字段从不具有 null 值,并且生成的方法中不会包含这样的检查。

点击 完成 完成向导并创建 equals() 和 hashCode() 方法。

最后修改日期: 2025年 4月 24日