Study/Effective-Java

[item#27] 비검사 경고를 제거하라

hongeeii 2023. 11. 30. 11:16
728x90
반응형
  • 비검사(unchecked)경고 란?
    • 컴파일러가 타입 안정성을 확인하는데 필요한 정보가 충분치 않을 때 발생시키는 경고(컴파일은 됨)
  • 할 수 있는 한 모든 비검사 경고를 제거하라
  • 경고를 제거할 수 없지만 안전하다고 확신한다면 @SuppressWarnings("unchecked") 애노테이션을 달아 경고를 숨기자
  • @SuppressWarnings 애너테이션은 항상 가능한 좁은 범위에 적용하자
  • @SuppressWarnings("unchecked") 애너테이션을 사용할 때면 그 경고를 무시해도 안전한 이유를 항상 주석으로 남겨야 한다.

image

image

image

가능한 좁게

image

자바 애너테이션을 정의하는 방법

  • @Retention : 애너테이션의 정보를 얼마나 오래 유지할 것인다.
    • Runtime, Source, Class
    • image
  • @Target : 애너테이션을 사용할 수 있는 위치
    • Type, Field, Method, Parameter ...
    • image
  • @Documented : 자바독에 포함이 된다.

Retention

Runtime이 default,
Class : Runtime이 아니기 때문에 Reflection으로도 가져올 수 없음.
Source : Byte code로도 참조 불가능 - 소스 코드의 이해를 위해 씀

Target

Type을 가장 많이 씀(class Type, Interface Type ... ) - method위에 선언 불가.
Method : method위에 선언 가능

image

728x90
반응형