IT/Spring | Java
[Spring] 롬복(Lombok) 생성자 어노테이션 @NoArgsConstructor @AllArgsConstructor
힞뚜루마뚜루
2023. 5. 17. 15:37
728x90
이름에서 알 수 있듯 생성자 역할을 하는 롬복 어노테이션으로 필수로 알고 있어야 한다.
다음과 같이 사용한다.
@NoArgsConstructor
@AllArgsConstructor
@RequiredConstructor
public class Account {
@NonNull
private String name;
private String password;
private int age;
}
@AllArgsConstructor
모든 필드를 인자로 받는 생성자를 생성한다. 이 때 순서는 클래스에 선언된 순서와 동일해야 한다.
Account account = new Account('hee', '비밀', 20);
@NoArgsConstructor
파라미터가 아무것도 없는 기본생성자를 생성한다. 모든 필드를 초기화하지 않고 객체를 생성할 때 사용한다.
Account account = new Account();
@NonNull과 같은 어노테이션이 붙어있으면 할당해줘야 한다.
@RequiredArgsConstructor
초기화 되지 않은 final 필드 또는 @NonNull로 표시된 필드까지 파라미터로 가질 수 있다.
@NonNull 필드의 경우 null 체크 로직도 함께 생성되므로 이 필드에 null 값이 포함된다면 NullPointerException이 발생한다.
Account account = new Account("hee")
@AllArgsConstructor와 @RequiredArgsConstructor 모두 클래스에 선언된 순서를 철저히 지켜야한다. 따라서, 향후 수정사항이 발생했을 때 자동 리팩토링이 되지 않아 불편함이 따른다. 때문에 @Builder를 쓰는 것을 권장한다.
728x90