복잡한뇌구조마냥

[JAVA] 어노테이션 (Annotation) 본문

BE/JAVA

[JAVA] 어노테이션 (Annotation)

지금해냥 2025. 6. 17. 00:20

어노테이션

- Java 5부터 추가된 기능

- 클래스나 메소드 위에 붙여 사용  ex) @Override

- @(at) 기호로 이름이 시작됨.

- 소스코드에 메타코드(추가정보)를 주는 것

- 사용자 정의 가능 → 커스텀 어노테이션

 

커스텀 어노테이션

1. 정의

// Count100.java
package Util.exam;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

// 실행시에 감지할 수 있는 어노테이션
@Retention(RetentionPolicy.RUNTIME)
public @interface Count100 {

}

2. 사용

package Util.exam;

public class MyHello {
    @Count100
    public void hello(int num) {
        System.out.println("Hello World" + num);
    }
}

3. 실행

package Util.exam;

import java.lang.reflect.Method;

public class MyHelloExam {
    public static void main(String[] args) {
        MyHello myHello = new MyHello();

        try {
            Method method = myHello.getClass().getDeclaredMethod("hello");

            if (method.isAnnotationPresent(Count100.class)) {
                for (int i = 0; i < 100; i++) {
                    myHello.hello();
                }
            } else {
                myHello.hello();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  • JVM 실행시 감지할 수 있도록 하려면 @Retention(RetentionPolicy.RUNTIME)를 붙여줘야함
  • 어노테이션을 작성한 메소드를 생성
  • 클래스가 가지고 있는 메소드를 확인하여 특정 어노테이션이 있는지에 따라 다른 기능을 제공 할 수 있음.
LIST