Study/Effective-Java
[item#27] 비검사 경고를 제거하라
hongeeii
2023. 11. 30. 11:16
728x90
반응형
- 비검사(unchecked)경고 란?
- 컴파일러가 타입 안정성을 확인하는데 필요한 정보가 충분치 않을 때 발생시키는 경고(컴파일은 됨)
- 할 수 있는 한 모든 비검사 경고를 제거하라
- 경고를 제거할 수 없지만 안전하다고 확신한다면 @SuppressWarnings("unchecked") 애노테이션을 달아 경고를 숨기자
- @SuppressWarnings 애너테이션은 항상 가능한 좁은 범위에 적용하자
- @SuppressWarnings("unchecked") 애너테이션을 사용할 때면 그 경고를 무시해도 안전한 이유를 항상 주석으로 남겨야 한다.
가능한 좁게
자바 애너테이션을 정의하는 방법
- @Retention : 애너테이션의 정보를 얼마나 오래 유지할 것인다.
- Runtime, Source, Class
- @Target : 애너테이션을 사용할 수 있는 위치
- Type, Field, Method, Parameter ...
- @Documented : 자바독에 포함이 된다.
Retention
Runtime이 default,
Class : Runtime이 아니기 때문에 Reflection으로도 가져올 수 없음.
Source : Byte code로도 참조 불가능 - 소스 코드의 이해를 위해 씀
Target
Type을 가장 많이 씀(class Type, Interface Type ... ) - method위에 선언 불가.
Method : method위에 선언 가능
728x90
반응형