IntelliJ IDEA 2023.1 Help

Generate equals() and hashCode() wizard

Use this wizard to generate equals() and hashCode() methods.

Item

Description

Page1

Template

Use this drop-down list to select a predefined velocity template or click the Browse button to use Templates dialog.

Accept subclasses as parameter to equals() method

While generally incompliant to Object.equals() specification, accepting subclasses might be necessary for generated method to work correctly with frameworks, which generate Proxy subclasses, like Hibernate.

Use getters during code generation

If this checkbox is selected, the getters are used in equals() instead of direct fields access: getField() vs field.

Click Next to open the next page.

Page 2

Choose fields to be included in equals()

Select the fields that should be used to determine equality. Each of the selected field's values will be compared, and objects will be considered equal only if all the field values specified here are equivalent.

Click Next to open the next page.

Page 3

Choose fields to be included in hashCode()

Select the fields to generate hash code. Note that only the fields that were included in the equals() method, can participate in creating hash code. All these fields are selected by default, but you can deselect them, if necessary.

Click Next to open the next page.

Page 4

Select all non-null fields

This page appears if any of the chosen fields are of non-primitive type in order to avoid generation of unnecessary checks. In other words, if a checkbox for any of these fields is selected, it is presumed that such field never has a null value and such check will not be included into generated methods.

Click Finish to complete the wizard and create eqauls() and hashCode() methods.

Last modified: 17 March 2022