@RequiredArgsConstructor는 다음과 같은 방식으로 생성자를 생성합니다.
- 필드 선택:
- 초기화되지 않은 final 필드
- 선언 시 초기화되지 않은 @NonNull로 표시된 필드
- 생성자 매개변수:
- 위 조건에 해당하는 필드들만 매개변수로 가지는 생성자를 생성합니다.
- null 체크:
- @NonNull 로 표시된 필드에 대해 null 체크를 수행하며, null 값이 전달되면 NullPointerException을 발생시킵니다.
- 매개변수 순서:
- 생성자 매개변수의 순서는 클래스 내에서 필드가 선언된 순서를 따릅니다.
@AllArgsConstructor 는 다음과 같은 방식으로 생성자를 생성합니다.
- 필드 선택:
- 클래스의 모든 필드가 매개변수로 포함됩니다.
- null 체크:
- @NonNull로 표시된 필드에 대해 null 체크를 수행하며, null 값이 전달되면 NullPointerException을 발생시킵니다.
import lombok.AllArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
public class AnnotationTest {
@AllArgsConstructor
public static class AllArgsConstructorDto {
private String field_1;
@NonNull
private String field_2;
private final String field_3;
private final String field_4;
}
@RequiredArgsConstructor
public static class RequiredArgsConstructorDto {
private String field_5;
@NonNull
private String field_6;
private final String field_7;
private final String field_8;
}
}
'Springあるある' 카테고리의 다른 글
input 태그 속에 th:field와 th:value가 동시에 있는 경우 (0) | 2025.01.10 |
---|---|
@ModelAttribute의 새로운 사용법 (0) | 2025.01.10 |
[타임리프와 스프링의 통합]의 진짜 의미! (0) | 2025.01.10 |
Map :: values() 사용 시 주의점(Feat. ConcurrentModificationException) (0) | 2025.01.10 |
타임리프 프로토타입 주석(Feat. 타임리프 주석) (0) | 2025.01.09 |