반응형
@Annotation이란?
2024.11.29 - [☕ 자바 JAVA/☕ 개념지식] - [JAVA]@Annotation 종류와 사용법
정의하기
@interface 어노테이션명 {
타입 요소이름();
}
- 어노테이션 메서드는 ()는 있지만 매개변수가 없는 추상 메서드이다.
→ 어노테이션을 클래스에 사용할 때 요소의 값을 지정한다. - 요소에 순서는 없다.
- 어노테이션 이름은 유일해야 한다.
(중복시 java.lang.NoSuchMethodError 발생)
※ Annotation 요소 규칙
○ 요소 타입은 기본형, String, enum, annotation, Class만 허용된다.
○ 괄호() 안에 매개변수를 선언할 수 없다.
○ Exception 선언 불가.
○ <T> 타입 매개변수 정의 불가능.
default 지정 가능
→ 값을 지정하지 않으면 사용된다.
요소 이름이 value하나일 경우,
요소 이름 생략 가능.
- 요소가 String value(); 하나일 경우
- @어네토이션명 ("입력값") 으로 바로 지정하여 사용할 수 있다.
모든 어노테이션의 조상
interface Annotation
- 조상이지만 인터페이스를 만들 때 상속은 불가하다.
- 하지만 인터페이스의 메서드들을 구현하지 않고도 사용가능하다.
Marker Annotation
: 요소가 하나도 정의되지 않은 어노테이션.
어노테이션 요소 불러오기.
실습
- Class<클래스명> cls = 클래스명.class;
→ 클래스에 선언된 어노테이션을 불러오기 위해 클래스를 Class타입으로 선언한다. - 어노테이션명 anno = cls.getAnnotation( 어노테이션명 .class);
→ Class의 getAnnotation()메서드를 이용해서 어노테이션을 호출한다. - 어노테이션의 요소() 들을 불러올 수 있다.
❗ 만약 호출한 어노테이션이 null이라면
@Retention(RetentionPolicy.RUNTIME)
가 어노테이션 위에 적혀있는 지 확인해야한다.
프로그램 실행 중에 값이 들어오지 않아서 그렇다.
왜 그런 지 모르겠다면
반응형
'☕ JAVA > ☕ Class & Method' 카테고리의 다른 글
[JAVA][Thread]구현 (0) | 2024.12.02 |
---|---|
[JAVA]java.util.function 패키지 (0) | 2024.12.01 |
[JAVA]Collections:컬렉션을 위한 메서드 모음 (0) | 2024.11.27 |
[JAVA]반복문 for와 while (1) | 2024.11.25 |
[JAVA]조건문 if과 switch (0) | 2024.11.23 |