Annotation
이란? 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포합시킨것이 바로 Annoation이다.
코드를 작성하다보면 @Override
같이 @가 붙은 것을 많이 봤을 것이다. @Override
가 컴파일에게 오버라이딩이라는 것을 알려주는 Annotation 대표적인 예이다.
Annotation | 설명 |
---|---|
@Override | 컴파일러에게 Override하는 메서드인 것을 알려줄때 사용한다. |
@Deprecated | 앞으로 사용하지 않을 것을 권장하는 대상에 붙인다. |
@FunctionalInterface | 함수형 interface라는 것을 알린다. |
@SuppressWarnings | 컴파일러의 특정 경고메시지가 나타나지 않게 해준다. |
@SafeVarargs | 지네릭 타입 가변인자에 사용한다. |
@Native | native 메서드에서 참조되는 상수 앞에 붙인다. |
Annotation | 설명 |
---|---|
@Target | Annotation이 적용 가능한 대상을 지정하는데 사용한다. |
@Documented | Annotation이 정보를 javadoc으로 작성된 문서에 포합시킬때 사용한다. |
@Retention | Annotation이 유지되는 범위를 지정하는데 사용한다. |
interface앞에 @
를 붙혀서 만들어준다. 여기서 사용되는 @Documented
@Retention
@Target
은 meta Annotation
이라고 부른다
여기서 Enum 형태인 ElementType을 멤버로 가진다. 멤버로 가질 수 있는 타입은 int나 double과 같은 원시 타입이나 String, Class 타입, 배열 타입, Enum 을 사용할 수 있다.