Lombok의 @EqualsAndHashCode 어노테이션에서 exclude, of, 그리고 onlyExplicitlyIncluded 옵션은 equals()와 hashCode() 메서드를 생성할 때 특정 필드를 포함하거나 제외하는 데 사용된다.
exclude 옵션은 특정 필드를 equals()와 hashCode() 메서드 생성에서 제외하는 데 사용된다.
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(exclude = {"id", "timestamp"})
public class ExampleClass {
private Long id;
private String name;
private double score;
private java.util.Date timestamp;
// 기타 필드 및 메서드
}
이 예시에서 ExampleClass는 id와 timestamp 필드를 제외한 나머지 필드(name, score)를 사용하여 equals()와 hashCode() 메서드가 생성된다.
of 옵션은 equals()와 hashCode() 메서드 생성에 포함할 특정 필드를 지정하는 데 사용된다.
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(of = {"name", "score"})
public class ExampleClass {
private Long id;
private String name;
private double score;
private java.util.Date timestamp;
// 기타 필드 및 메서드
}
이 예시에서는 name과 score 필드만 equals()와 hashCode() 메서드 생성에 사용된다. id와 timestamp 필드는 무시된다.
onlyExplicitlyIncluded 옵션은 @EqualsAndHashCode.Include 어노테이션이 붙은 필드만을 equals()와 hashCode() 메서드 생성에 포함시키는 데 사용된다.
import lombok.EqualsAndHashCode;
import lombok.EqualsAndHashCode.Include;
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class ExampleClass {
private Long id;
@Include
private String name;
@Include
private double score;
private java.util.Date timestamp;
// 기타 필드 및 메서드
}
이 예시에서는 @EqualsAndHashCode.Include 어노테이션이 붙은 name과 score 필드만 equals()와 hashCode() 메서드 생성에 사용된다. id와 timestamp는 포함되지 않는다.