사용자 도구

사이트 도구


java:lombok:pitfall

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
java:lombok:pitfall [2017/07/05 19:41]
kwon37xi [@Value 사용금지]
java:lombok:pitfall [2017/07/05 23:32]
kwon37xi [@AllArgsConstructor, @RequiredArgsConstructor 사용금지]
줄 37: 줄 37:
 </code> </code>
  
-이 문제는 ''@AllArgsConstructor''와 ''@RequiredArgsConstructor''에 둘다 존재하며, 이에 따라 이 두 lombok 애노테이션은 사용을 금지하는 것이 좋다.+이 문제는 ''@AllArgsConstructor''와 ''@RequiredArgsConstructor''에 둘 다 존재하며, 이에 따라 이 두 lombok 애노테이션은 사용을 금지하는 것이 좋다.
  
 대신, 생성자를 (IDE 자동생성등으로) 직접 만들고 필요할 경우에는 직접 만든 생성자에 [[https://projectlombok.org/features/Builder|@Builder]] 애노테이션을 붙이는 것을 권장한다. 파라미터 순서가 아닌 이름으로 값을 설정하기 때문에 리팩토링에 유연하게 대응할 수 있다. 대신, 생성자를 (IDE 자동생성등으로) 직접 만들고 필요할 경우에는 직접 만든 생성자에 [[https://projectlombok.org/features/Builder|@Builder]] 애노테이션을 붙이는 것을 권장한다. 파라미터 순서가 아닌 이름으로 값을 설정하기 때문에 리팩토링에 유연하게 대응할 수 있다.
줄 165: 줄 165:
 ===== @ToString, @EqualsAndHashCode 필드명 지정시 오타 문제 ===== ===== @ToString, @EqualsAndHashCode 필드명 지정시 오타 문제 =====
 [[https://projectlombok.org/features/ToString|@ToString]] 과 [[https://projectlombok.org/features/EqualsAndHashCode [[https://projectlombok.org/features/ToString|@ToString]] 과 [[https://projectlombok.org/features/EqualsAndHashCode
-|@EqualsAndHashCode]]에서는 파라미터로 특정 필드를 지정해서 처리 대상에 포함시키거나 제외시킬 수 있다.+|@EqualsAndHashCode]]에서는 파라미터로 특정 필드를 지정해서 처리 대상에 포함시키거(**of**)나 제외(**exclude**)시킬 수 있다.
  
 헌데 문제는 이게 필드 이름을 String으로 지정한다는 점이다. 이로 인해 IDE 에서 필드명을 리팩토링할 때 올바로 반영이 안되거나, 아주 단순한 오타가 나도 눈치를 못 챌 수 있다. **보통 오타등으로 인해 잘못된 필드가 지정되면 Compile 시점에 warning이 출력된다. 하지만 warning일 뿐, error가 아닌지라 그마저도 모르고 넘어갈 가능성이 높다.** 헌데 문제는 이게 필드 이름을 String으로 지정한다는 점이다. 이로 인해 IDE 에서 필드명을 리팩토링할 때 올바로 반영이 안되거나, 아주 단순한 오타가 나도 눈치를 못 챌 수 있다. **보통 오타등으로 인해 잘못된 필드가 지정되면 Compile 시점에 warning이 출력된다. 하지만 warning일 뿐, error가 아닌지라 그마저도 모르고 넘어갈 가능성이 높다.**
줄 185: 줄 185:
  
 예를들어, 프로젝트 최상단 디렉토리에 ''lombok.config'' 파일을 만들고 다음과 같이 지정하면 ''@Data'', ''@Value'', ''val'', ''@NonNull'', ''@AllArgsConstructor'', ''@RequiredArgsConstructor'' 등의 사용이 금지된다. 예를들어, 프로젝트 최상단 디렉토리에 ''lombok.config'' 파일을 만들고 다음과 같이 지정하면 ''@Data'', ''@Value'', ''val'', ''@NonNull'', ''@AllArgsConstructor'', ''@RequiredArgsConstructor'' 등의 사용이 금지된다.
 +
 +억지로 사용할 경우 컴파일 오류가 발생한다.
  
 <code> <code>
java/lombok/pitfall.txt · 마지막으로 수정됨: 2022/06/27 16:40 저자 kwon37xi