자주 쓰는 어노테이션에 대해 알아보자

import lombok.*;

@RequiredArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private final String name;
    private int age;
    private @NonNull String email;
}

@RequiredArgsConstructor

포함 필드: final + @NonNull

여기서는 name(final), email(@NonNull) 포함

자동 생성되는 생성자:

public User(String name, String email) {
    this.name = name;
    this.email = Objects.requireNonNull(email);
}

핵심: 필수값만 넣어서 객체 생성 가능

@AllArgsConstructor

포함 필드: 모든 필드 (name, age, email)

자동 생성되는 생성자:

public User(String name, int age, String email) {
    this.name = name;
    this.age = age;
    this.email = email;
}

핵심: 모든 필드를 한 번에 초기화할 때 사용

@NoArgsConstructor

포함 필드: 없음

자동 생성되는 생성자:

public User() {
}

핵심: 아무 값 없이 객체 생성 가능 (ex: JPA 엔티티용, 프레임워크에서 기본 생성자 필요할 때)


요약

@RequiredArgsConstructor  필수값만 넣고 싶을 

@AllArgsConstructor  전체 필드 넣고 싶을 

@NoArgsConstructor   객체 만들고 싶을 

Leave a comment