어노테이션
12.3
3. 어노테이션
- 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것
- 표준 어노테이션
- 자바에서 기본적으로 제공하는 어노테이션들
- Override: 컴파일러에게 오버라이딩하는 메서드임을 알림
- Deprecated: 앞으로 사용하지 않을것을 권장
- @SuppressWarnings 컴파일러의 특정 경고 메세지를 차단
- @SafeVarags: 제네릭스 타입의 가변인자에 사용
- @Functionallnterface: 함수형 인터페이스임을 알림
- @Native: native메서드에서 참도되는 상수 앞에 붙임
- 메타 어노테이션
- 어노테이션에 붙히는 어노테이션
- 어노테이션을 정의할 떄 어노테이션의 적용대상이나 유지기간을 지정하는데 사용
- @Target: 어노테이션이 적용가능한 대상을 지정하는데 사용
- @Documented: 어노테이션 정보를 javadoc으로 작성된 문서에 포함시킴
- @Inherited: 어노테이션이 자손 클래스에 상속되도록 함
- @Retention: 어노테이션이 유지되는 범위를 지정하는데 사용함
- @Repeatable: 어노테이션을 반복해서 적용할 수 있게 함
-
어노테이션 정의
@interface 어노테이션이름 { 타입 요소이름(); //어노테이션의 요소 선언 }
- 어노테이션의 요소
- 어노테이션 내 선언된 메서드
- 요소는 반환값이 있고 매개변수는 없는 추상 메서드의 형태를 가짐
- 상속을 통해 구현될 필요 없음
- 어노테이션을 적용할 때 요소들의 값을 모두 할당해야됨
- 기본값을 지정할 수 있으며 어노테이션이 적용될 때 할당되지않으면 기본값 적용
- 요소의 규칙
- 요소의 타입은 기본형, String, enum, 어노테이션, Class만 허용
- 매개변수 선언 불가
- 요소를 타입 매개변수로 정의 할 수 없음
- 예외를 선언할 수 없음
- 마커 어노테이션
- 요소가 하나도 없는 어노테이션
Leave a comment