IntelliJ IDEA 2024.2 ヘルプ

equals() と hashCode() 生成ウィザード

このウィザードを使用して equals() および hashCode() メソッドを生成するを実行します。

項目

説明

ページ 1

テンプレート

定義済みの velocity テンプレートを選択するか、the Browse button をクリックしてテンプレートダイアログを使用します。

equals() メソッドのクラス型比較

メソッド内で生成する式を選択します。疑問符アイコンの上にマウスを置くと、各式を使用する利点と欠点を説明するツールヒントが開きます。

instanceof 式

  • サブクラスのインスタンスがスーパークラスのインスタンスと等しくなることを許可する

  • 異なるサブクラスのインスタンスが互いに等しくなるようにする

  • 余分な null チェックを回避

  • リスコフ置換原則に従う

getClass()

  • 生成された equals() メソッドをオーバーライドしても、その契約は破られません。

可能な場合は getter を使用する

このチェックボックスをオンにすると、getField()field の直接フィールドアクセスではなく、equals() で getter が使用されます。

次へをクリックして次のページを開きます。

ページ 2

equals() に含めるフィールドの選択

同等性を判断するために使用する必要があるフィールドを選択します。選択した各フィールドの値が比較され、ここで指定されたすべてのフィールド値が等しい場合にのみ、オブジェクトは等しいと見なされます。

次へをクリックして次のページを開きます。

ページ 3

hashCode() に含めるフィールドの選択

ハッシュコードを生成するフィールドを選択します。equals() メソッドに含まれているフィールドのみがハッシュコードの作成に参加できることに注意してください。これらのフィールドはすべてデフォルトで選択されていますが、必要に応じて選択を解除できます。

次へをクリックして次のページを開きます。

ページ 4

すべての非 NULL フィールドの選択

このページは、選択したフィールドのいずれかが非プリミティブ型の場合、不要なチェックの生成を避けるために表示されます。つまり、これらのフィールドのいずれかのチェックボックスが選択されている場合、そのフィールドには null 値が設定されないものとみなされ、生成されたメソッドにはそのようなチェックは含まれません。

完了をクリックしてウィザードを完了し、equals() メソッドと hashCode() メソッドを作成します。