: 자바 프로그래밍 언어의 기능 중 하나로, 코드에 메타데이터(추가정보)를 추가하는 방법을 제공한다. 이 메타데이터는 컴파일러, 런타임 라이브러리 또는 다른 도구들에게 프로그램에 대한 추가적인 정보를 제공한다.
어노테이션 특징
Custom 어노테이션을 이용하는 방법
Custom 어노테이션 정의, 사용, 실행해보기
1. 어노테이션 정의
어노테이션을 정의할 때는 '@interface' 키워드를 사용하여 어노테이션을 선언한다. 어노테이션은 기본적으로 인터페이스의 형태를 가지며, 필요한 요소들을 메소드로 선언할 수 있다.
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME) // 어노테이션이 런타임에 유지될 수 있도록 함.
public @interface Count100{
}
2. 어노테이션을 클래스에서 사용
어노테이션을 사용하여 메소드에 메타데이터를 추가할 수 있다.
public class MyHello{
@count100
public void hello{
System.out.println("hello");
}
}
3. 어노테이션을 이용하여 실행
어노테이션을 분석하려면 리플렉션을 사용해야 한다.
MyHello의 hello 메소드가 @count100 어노테이션이 설정되어 있을 경우, hello()메소드를 100번 호출하도록 한다.
import java.lang.reflect.Method;
public class MyHelloExam{
public static void main(String[] args){
// MyHello 클래스의 인스턴스를 생성한다.
MyHello hello = new MyHello();
try{
// Myclass 클래스에서 'hello'라는 이름의 메소드를 가져온다.
Method method = hello.getClass().getDeclaredMethod("Hello");
// 가져온 메소드에 @count100 어노테이션이 있는지 확인한다.
if(method.isAnnotationPresent(Count100.class)){
for(int i=0; i<100; i++){
hello.hello();
}
}else{
hello.hello();
}
}catch(Exception e){
e.printStackTrace();
}
}
}