[Java] Lombok 제대로 알아보기

2023. 8. 22. 21:40·Programming Language/Java
목차
  1. @Getter와 @Setter
  2. @ToString
  3. @EqualsAndHashCode
  4. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
  5. @Data
  6. @Builder

롬복이란?

롬복은 자바에서 클래스를 작성을 간결하게 할 수 있도록

어노테이션(annotations)을 이용하여 자동으로 Getter, Setter, Constructor 등의 메서드를 생성하는 라이브러리 입니다.

롬복은 컴파일 과정에서 어노테이션을 통해 메서드를 생성합니다.

다양한 사용 예시

@Getter와 @Setter

필드의 게터와 세터를 생성합니다.

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Person {
    private String name;
    private int age;
}

@ToString

클래스의 toString 메서드를 생성합니다.

import lombok.ToString;

@ToString
public class Person {
    private String name;
    private int age;
}

@EqualsAndHashCode

필드를 기반으로 equals와 hashCode 메서드를 생성합니다.

 

import lombok.EqualsAndHashCode;

@EqualsAndHashCode
public class Person {
    private String name;
    private int age;
}

@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

각각 파라미터가 없는 생성자, 모든 필드를 파라미터로 받는 생성자와 초기화 되지 않은 final 필드처럼 필수적인 필드를 인수로 하는 생성자를 생성합니다.

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class Person {
    private String name;
    private int age;
    @NonNull // 필수 생성
    private String email;
}

@Data

이 어노테이션은 @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 모두 표기한 것과 같습니다.

import lombok.Data;

@Data
public class Person {
    private String name;
    private int age;
}

@Builder

빌드 어노테이션은 앞서 소개한 어노테이션과 다르게

생성자의 가독성을 높힌 빌드 패턴을 사용할 수 있는 어노테이션입니다.

 

import lombok.Builder;

@Builder
public class Person {
    private String name;
    private int age;
}

// 빌드패턴 사용
Person person = Person.builder()
    .name("John")
    .age(30)
    .build();

.필드명(값)으로 인자의 순서를 몰라도 필드 이름으로 생성자에 값을 넘길 수 있습니다.

예시 코드보다 필드가 더 많을 때 유용하게 사용되니 꼭 알아두시는 것을 추천드립니다.

 

'Programming Language > Java' 카테고리의 다른 글

[Java] 컬렉션 프레임워크의 HashSet과 HashMap, HashTable과 Hashing이란  (0) 2024.05.06
[Java] 자바에서 GitHub REST API 사용하기  (0) 2023.08.21
[Java] Github API 사용하기  (0) 2023.08.20
[JAVA] 소켓 프로그래밍, TCP 소켓 프로그래밍  (0) 2023.07.19
[JAVA] 네트워킹 이해하기 & InetAddress  (0) 2023.07.18
  1. @Getter와 @Setter
  2. @ToString
  3. @EqualsAndHashCode
  4. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
  5. @Data
  6. @Builder
'Programming Language/Java' 카테고리의 다른 글
  • [Java] 컬렉션 프레임워크의 HashSet과 HashMap, HashTable과 Hashing이란
  • [Java] 자바에서 GitHub REST API 사용하기
  • [Java] Github API 사용하기
  • [JAVA] 소켓 프로그래밍, TCP 소켓 프로그래밍
hurlud
hurlud
나와 같은 궁금증을 가진 사람들을 위해 오늘도! 🐥
주독야독나와 같은 궁금증을 가진 사람들을 위해 오늘도! 🐥
  • hurlud
    주독야독
    hurlud
  • 전체
    오늘
    어제
  • 최근 글

    • ALL (106)
      • CS (13)
      • Linux (2)
      • Deploy (7)
        • AWS (6)
        • Docker (1)
      • IDE (13)
        • IntelliJ (5)
        • Android Studio (8)
      • DB (10)
        • MySQL (6)
        • MongoDB (4)
      • Programming Language (20)
        • JavaScript (10)
        • Java (8)
        • Python (2)
      • Framework (32)
        • Node.js (6)
        • SpringBoot (17)
        • React (6)
        • NestJS (2)
      • Git | Github (4)
      • ETC (5)
      • Akka (0)
  • 링크

    • 깃허브
  • hELLO· Designed By정상우.v4.10.0
hurlud
[Java] Lombok 제대로 알아보기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.