애너테이션 타입 정의하기, 애너테이션의 요소

0

애너테이션 타입 정의하기

  • 애너테이션을 직접 만들어 쓸 수 있다.
@interface 애너테이션이름 {
	타입 요소이름();  // 애너테이션의 요소를 선언한다.
}
@interface DateTime {
	String yymmdd();  // 날짜
    String hhmmss();  // 시간, 추상메서드
  • 애너테이션의 메서드는 추상메서드이며, 애너테이션을 적용할 때 지정(순서x)
    • 자신이 아닌 다른 애너테이션을 포함할 수 있다. (@DateTime)
  • 애너테이션을 사용하려면 요소의 값들을 다 써줘야 한다.

애너테이션의 요소

  • 적용시 값을 지정하지 않으면, 사용될 수 있는 기본값 지정 가능 (null 제외)
  • 요소가 하나이고 이름이 value이면 요소이름 생략 가능
  • 요소의 타입이 배열인 경우, 괄호{}를 사용해야 함

모든 애너테이션의 조상

: java.lang.annotation.Annotation

  • Annotation은 모든 애너테이션의 조상이지만 상속 불가능
  • 사실 Annotation은 인터페이스다.
    • Annotation의 추상메서드는 애너테이션 모두가 extends하지 않아도 물려받음.

마커 애너테이션 (Marker Annotation)

  • 요소가 하나도 정의되지 않은 애너테이션

애너테이션의 요소의 규칙

  • 애너테이션의 요소를 선언할 때 아래의 규칙을 반드시 지켜야 한다.
    • 요소의 타입은 기본형, String, enum, 애너테이션, Class만 허용됨
    • 괄호()안에 매개변수를 선언할 수 없다.
    • 예외를 선언할 수 없다.
    • 요소를 타입매개변수로 정의할 수 없다. (<T>)
profile
백엔드를 공부하고 있습니다.

0개의 댓글