Java 어노테이션 사용하기
어노테이션 사용하기
어노테이션 자체는 단순한 이름과 유형의 정의일 뿐이므로, 지정된 어노테이션에 따라 어떤 처리를 수행할지 결정하는 것은 호출자의 책임이다.
어노테이션 정보는 Method#getAnnortation
메소드로 얻을 수 있다. Method 객체를 받아오는 것은 Class#getMethod
메소드의 역할이다. 1
AnnotationSample.java
package com.devkuma.basic.annotation;
import java.lang.reflect.Method;
public class AnnotationSample {
@Version(1.0)
public void annotationTest() {
System.out.println("Released");
}
public static void main(String[] args) {
try {
// annotationTest 메서드를 받아온다.
Method method = AnnotationSample.class.getMethod("annotationTest");
// Version 어노테이션을 받아온다.
Version version = method.getAnnotation(Version.class);
// Version 어노테이션이 1.0이상인 경우에 실행한다.
if (version.value() >= 1.0) {
method.invoke(AnnotationSample.class.getDeclaredConstructor().newInstance());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과:
Released
이 예제이면 검색된 Version
어노테이션의 값이 1.0 이상인 경우에 어노테이션이 부여된 메소드(여기서는 annotationTest
)를 실행한다. Method
객체를 통해 메서드를 실행하려면 invoke
메서드를 사용한다.
-
이러한 클래스나 그 멤버에 액세스하기 위한 기능을 리플렉션 이라고 한다. ↩︎
최종 수정 : 2022-09-25