SpringBootで@EqualsAndHashCodeアノテーションをどのように使うのですか?

Spring Bootでは、@EqualsAndHashCodeアノテーションを使用して、equals()メソッドとhashCode()メソッドを自動生成することができます。このアノテーションはクラスレベルで適用でき、クラスで定義されたフィールドに基づいてequals()メソッドとhashCode()メソッドを自動生成します。

@EqualsAndHashCodeアノテーションを使用した簡単な例:

import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class User {
    private String name;
    private int age;
    // 省略构造函数、getter和setter等

    // 在此处可以省略equals和hashCode方法的实现
}

上記の例では、Userクラスのequals()およびhashCode()メソッドは、nameとageフィールドに基づいて自動生成されます。特定のフィールドを除外するには、@EqualsAndHashCodeアノテーションの除外プロパティを使用するか、ofプロパティを使用して含めるフィールドを指定できます。たとえば、ageフィールドを除外したい場合は、excludeプロパティを使用します。

@EqualsAndHashCode(exclude = "age")
public class User {
    private String name;
    private int age;
    // 省略构造函数、getter和setter等

    // 在此处可以省略equals和hashCode方法的实现
}

nameフィールドだけを使用してequals()とhashCode()メソッドを生成したい場合は、of属性を使用できます。

@EqualsAndHashCode(of = "name")
public class User {
    private String name;
    private int age;
    // 省略构造函数、getter和setter等

    // 在此处可以省略equals和hashCode方法的实现
}

EqualsAndHashCodeアノテーションを使用すると、コードを簡略化することができ、クラス内のフィールドが変更された場合、equals()メソッドとhashCode()メソッドが自動的に更新されます。

bannerAds