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 메서드를 사용한다.


  1. 이러한 클래스나 그 멤버에 액세스하기 위한 기능을 리플렉션 이라고 한다. ↩︎




최종 수정 : 2022-09-25