Java 기본 애노테이션의 소비자

같은 문법이라도 compiler와 IDE, runtime reflection이 서로 다른 시점에 읽는다.

Java annotations

Override

SOURCE에서 재정의 signature를 검사한다.

SuppressWarnings

SOURCE에서 구체 compiler 경고를 줄인다.

Deprecated

compiler 경고와 RUNTIME metadata를 제공한다.

Retention·Target

annotation 정의 자체의 계약을 만든다.

핵심: SuppressWarnings all을 넓은 범위에 적용해 새 경고까지 숨기지 않는다.