728x90
해당 내용은 GPT에게 물어본 내용입니다.
왜 해당 어노테이션을 사용할 때는 final이 붙어야 하는지 질문을 받은 적이 있다.
습관적으로 final을 사용하고 있었고, 이유를 정리해보려고 한다.
1. @RequiredArgsConstructor의 정확한 의미
이름 그대로 필수(requried)필드만을 파라미터로 받는 생성자를 만들어 준다.
필수 필드는 다음 두 가지이다.
- final 필드
- @NonNull 이 붙은 필드
2. 왜 final 필드만 대상인가?
객체 생성 시, 반드시 초기화 되어야 하는 필드를 명확히 구분하기 위해서이다.
Java에서 final 필드는:
- 생성자에서 반드시 한 번 초기화되어야 하고
- 이후 변경 불가능합니다.
즉, Lombok 입장에서는:
- 해당 필드는 생성 시점에 반드시 값이 있어야 한다.
'프레임워크 > Spring Boot' 카테고리의 다른 글
| @Aspect (0) | 2025.12.14 |
|---|---|
| 의존성 주입(Dependency Injection, DI) (0) | 2025.12.14 |
| 자바 엔터프라이즈 플랫폼 (0) | 2024.12.05 |
| [Spring Framework] 오류 페이지 처리 1탄 (0) | 2023.10.18 |
| API(Application Programming Interface) (0) | 2023.04.22 |