ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 자주 사용되는 Lombok 어노테이션
    Code 2024. 6. 22. 19:42

    Lombok

        자바에서 Getter, Setter, toString과 같은 반복 메소드 작성을 최소화하도록 돕는 라이브러리다. 어노테이션을 부여하는 것만으로 게터세터, 생성자 구현 등이 가능하여 데이터 클래스 작성이 수월해진다.

     

    자주 사용하는 어노테이션

    @Getter, @Setter

    private로 설정된 클래스 혹은 필드 변수를 외부에서 접근 또는 수정 가능하도록 getter, setter를 자동으로 구현한다.

    @NoArgsConstructor

    기본 생성자를 자동으로 구현한다.

    @AllArgsConstructor

    모든 필드에 대해서 초기화 값을 인수로 하는 생성자를 자동으로 구현한다.

    @RequiredArgsConstructor

    final 필드에 대해서 초기화 값을 인수로 하는 생성자를 자동으로 구현한다.

    @ToString

    객체가 가지고 있는 값을 문자열로 리턴한다. exclude 옵션을 사용하여 대상 필드를 제외할 수 있다.

    @EqualsAndHashCode

    equals()메소드와 hashCode()메소드를 생성한다. 두 메소드는 구조적으로 연관되어 있으므로 모순될 수 없어 함께 구현된다.
    - equals : 2개의 객체가 동일한지 검사하기 위하여 사용한다.
    - hashCode : 런타임 중 객체의 유일한 integer 값을 반환한다.

     

     

     

     

    @Value

    다음 어노테이션이 부여된 것과 동일한 상태가 된다. 
    @Getter
    @ToString
    @EqualsAndHashCode
    @AllArgsConstructor

    (1) 클래스 및 각 필드에 final이 부여된다. (2) 각 필드의 가시성이 private 상태가 된다. (3) 해당 객체는 불변 객체가 된다.
        생성 시 생성자에 따라 값이 설정되고, 이후로는 변경이 불가능하다. staticConstructor 옵션을 설정하면, static한 팩토리 메소드가 생성된다. 이 경우 생성자는 private로 변경되므로, 팩토리 메소드를 통해서만 인스턴스를 생성할 수 있다.

    @Data

    다음 어노테이션을 전부 부여한 것과 동일한 상태가 된다.
    @Getter / @Setter
    @ToString
    @EqualsAndHashCode
    @RequiredArgsConstructor
    @Value 

     

    'Code' 카테고리의 다른 글

    Kafka, Redis  (0) 2024.09.17
    [Java] 공공데이터포털 Open API 파싱, JPA  (0) 2024.08.08
    [Python] deque 자료구조  (0) 2024.06.08
    [Python] cannot unpack non-iterable NoneType object 오류  (0) 2024.06.07
    [Python] DFS  (0) 2024.06.07