@Annotation
AnSungHo edited this page Oct 22, 2022
·
1 revision
- 사전적 의미로는 주석이라는 뜻이 있다.
- JAVA에서는 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술.
- 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공
- 런타임시 특정 기능을 실행하도록 정보 제공
- 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공
-
- @Override
- 선언한 메서드가 오버라이드 되었다는 것을 표시.
- 만약 부모 클래스 또는 인터페이스에서 해당 메서드를 찾을 수 없다면 컴파일 에러 발생.
- @Deprecated
- 해당 메서드가 더 이상 사용되지 않음을 표시.
- 만약 사용할 경우 검파일 경고를 발생,
- since, **버전부터는 사용되지않으며, forRemoval, 이때부터 사라질것이다.
- @SuppressWarnings
- 선언한 곳의 컴파일 경고를 무시하도록 합니다.
- @SafeVarargs
- Java 7부터 지원, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고 무시
- @Functionalinterface
- java8부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션
- 만약 메서드가 존재하기 않거나, 1개 이상의 메서드가 존재할 경우 컴파일 오류
- @Override
-
- @Retention
- Java 컴파일러가 어노테이션을 다루는 방법을 기술하며, 특정 시점까지 영향을 미치는지를 결정
- 종류
- RetentionPolicy.SOURCE : 컴파일 전까지만 유효. (컴파일 이후에는 사라짐)
- RetentionPolicy.CLASS : 컴파일러가 클래스를 참조할 때까지 유효.
- RetentionPolicy.RUNTIME : 컴파일 이후에도 JVM에 의해 계속 참조가 가능. (리플렉션 사용)
- @Inherited
- 어노테이션의 상속을 가능하게 해준다.
- @Documented
- 해당 어노테이션을 Javadoc에 포함시킵니다.
- @Target
- 어노테이션이 적용할 위치를 선택
- 종류
- ElementType.PACKAGE : 패키지 선언
- ElementType.TYPE : 타입 선언
- ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언
- ElementType.CONSTRUCTOR : 생성자 선언
- ElementType.FIELD : 멤버 변수 선언
- ElementType.LOCAL_VARIABLE : 지역 변수 선언
- ElementType.METHOD : 메서드 선언
- ElementType.PARAMETER : 전달인자 선언
- ElementType.TYPE_PARAMETER : 전달인자 타입 선언
- ElementType.TYPE_USE : 타입 선언
- @Repeatable
- Java8부터 지원하며, 연속적으로 어노테이션을 선언할 수 있게 해준다.
- @Retention