[Lombok] 생성자 자동구현

롬복은 이런저런 생성자들을 알아서 만들어주는 기능도 제공한다.
아주 예쁜 녀석이다.



NoArgsConstructor

이건 인자가 하나도 없는 생성자를 구현해준다.
이게 뭐가 필요한가 싶을 수도 있는데, 어떤 라이브러리에선 디폴트 생성자의 명시적 구현을 요구하는 경우가 더러 있다. 그럴 때 쓰면 된다.
혹은 커스텀 생성자가 구현이 된 상태에서, 디폴트 생성자를 작성하기 귀찮을 때 써도 좋다.



AllArgsConstructor

이건 필드를 전부 초기화할 수 있는 생성자를 만들어준다.
인자의 순서는 필드의 선언 순서를 따른다...



RequiredArgsConstructor

위의 어노테이션들은 초기화를 안하거나, 무조건 전부 다 하는 생성자만 만들어준다.
그런데, 내가 원하는 필드만 초기화해주는 생성자는 만들어주지 못할까?
당연히 할 수 있다!
초기화를 해야하는 필드에 NonNull 어노테이션을 붙이고 클래스엔 RequiredArgsConstructor를 붙이면 된다.
아래의 코드는 모든 필드에 NonNull을 붙였다. 따라서 AllArgs...와 같게 동작한다.

y는 미뤄두고 x만 초기화시키고 싶다면, x에만 NonNull을 붙여주면 된다.
그러면 x 하나만을 인자로 받는 생성자를 생성한다.

아, 그리고 생성자의 필수요소 명시는 NonNull 대신 final을 사용해도 된다.
반드시 초기화되어야 하므로, 동일한 의미론을 가진다.