[Lombok] @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

Yujeong·2024년 3월 3일
post-thumbnail

build.gradle

dependencies {
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
}

Entity

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class User {

	@Id @Generated
    private Long userId;
    
    @NonNull
    private String nickname;
    
    @NonNull
    private String email;
    
    private int age;

}

@NoArgsConstructor

  • 매개변수 없이 생성자를 생성한다.
  • 초기값이 필요한 final 변수가 있는 경우에 이게 가능하지 않으면 컴파일러 에러가 발생한다.
  • NoArgsConstructor(force=true) force 옵션에 true 값을 주면, null/false/0으로 초기화된다.
User user = new User();

@RequiredArgsConstructor

  • final, @NonNull로 표시된 필드 값만 파라미터로 받는 생성자를 만든다.
User user = new User("nickname", "user@gmail.com");

@AllArgsConstructor

  • 모든 필드 값을 매개변수로 받는 생성자를 만든다.
User user = new User(1L, "nickname", "user@gmail.com", null);

참고
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
[LOMBOK] @NOARGSCONSTRUCTOR , @ALLARGSCONSTRUCTOR , @REQUIREDARGSCONSTRUCTOR

profile
공부 기록

0개의 댓글