항해99
항해99 23일차 TIL1 - 생성자를 직접 만드는 것과 Lombok을 사용해 만드는 것의 차이
자몽포도
2022. 12. 30. 18:07
오늘 주제는 롬복 애노테이션 사용 금지 질문 글을 보고 작성하게 되었습니다. 다소 자극적인 제목인데 요점은 롬복 사용 시 주의해서 사용하자는 의미같습니다.
생성자를 직접 만드는 것과 Lombok을 사용해 만드는 것의 차이
1. 생성자 직접 생성
생성자를 직접만들 때 단점이라고 한다면 필드가 추가될 때 생성자를 변경해야할 가능성이 생기는 것이다.
2. @RequiredArgsContructor 사용
1. 컴파일되면 생성자 파라미터에 final이 붙는다.
파라미터에 final을 붙였다는 것은 메소드 파라미터를 메소드 내부에서 변경할 수 없음을 의미한다.
2. 필드 순서에 따라 생성자 메소드가 생성된다.
어떤 개발자가 필드의 순서를 변경했다고 해보자. 필드 타입이 다르다면 컴파일 과정에서 오류가 나겠지만 타입이 동일하다면 컴파일 과정에서 심각한 문제를 해결할 수 없다.
필드 위치 수정 전
필드 위치 수정 후
가격과 수량이 교환되면서 큰 문제가 일어날 수도 있을 것이다.