최대한 많은 비검사 경고를 지우자.
- 모든 비검사 경고는 런타임에 ClassCastException을 일으킬 수 있는 잠재적 가능성이 있다. 따라서 최선을 다해 제거하자.
- 비검사 경고 예시) 아래 코드에서 HashSet의 타입을 명시해주라는 경고가 뜬다.
// Set<Lark>로 형변환이 필요하다는 경고 발생
Set<Lark> exaltation = new HashSet();
// 다이아몬드 연산자를 사용한 수정 (자바 7부터 지원)
Set<Lark> exaltation = new HashSet<>();
경고를 제거할 수 없지만, 타입 안전하다고 확신한다면 @SupressWarnings("unchecked") 애너테이션을 달아 경고를 숨기자.
- 예외가 일어나지 않을 것이라 확신한다면 불필요한 경고는 지우는것이 좋다. 잠재적인 버그에 대한 경고를 찾는데 도움을 준다.
- 가능한 좁은 범위에 적용하자. (예. 변수 선언, 아주 짧은 메서드, 생성자)
- 클래스 전체에는 절대 적용하지 말 것 (심각한 경고를 놓치 수 있다)
- 그 경고를 무시해도 안전한 이유를 항상 주석으로 남기자. 동료가 잘못 수정하는 경우를 방지할 수 있다.
'개발 > [스터디] 이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바 스터디] 아이템 31~35 (0) | 2022.01.09 |
---|---|
[이펙티브자바]아이템28. 배열보다는 리스트를 사용하여라. (0) | 2022.01.02 |
[이펙티브자바]아이템26. 로타입은 사용하지 말라 (0) | 2022.01.01 |
[책 요약]이펙티브자바 21~25 (0) | 2021.12.26 |
아이템 17. 변경 가능성을 최소화해라 (0) | 2021.12.19 |