-
[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