@EqualsAndHashCode 의 옵션

youngkyu MIn·2023년 12월 14일
0

Lombok의 @EqualsAndHashCode 어노테이션에서 exclude, of, 그리고 onlyExplicitlyIncluded 옵션은 equals()와 hashCode() 메서드를 생성할 때 특정 필드를 포함하거나 제외하는 데 사용된다.

exclude

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

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

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는 포함되지 않는다.

profile
한 줄 소개

0개의 댓글

관련 채용 정보