[JAVA] @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor 차이점
@AllArgsConstructor
클래스 내에 모든 필드를 매개변수로 하는 생성자를 만들어준다.
1
2
3
4
5
6
7
8
@AllArgsConstructor
public class User {
private final Long id;
private String name;
private int age;
}
User user = new User(2L, "김철수", 23);
@NoArgsConstructor
매개변수를 갖지 않는 기본 생성자를 만들어준다.
1
2
3
4
5
6
7
8
@NoArgsConstructor
public class User {
private Long id;
private String name;
private int age;
}
User user = new User();
만약, 항상 초기화가 필요한
final
이 붙은 필드를 사용한다면 컴파일 에러가 발생한다.
@RequiredArgsConstructor
클래스 내에 모든 필수 필드를 매개변수로 받는 생성자를 생성한다.
필수 필드란,
final
,@NotNull
또는 필수적으로 초기화되어야 하는 필드를 말한다.
1
2
3
4
5
6
7
8
@RequiredArgsConstructor
public class User {
private final Long id;
private String name;
private int age;
}
User user = new User(3L);
Leave a comment