
어노테이션은 클래스나 메소드 위에 붙으며 @기호로 이름이 시작한다.
어노테이션은 자바가 기본으로 제공해주는 것도 있고, 사용자가 직접 만들 수 있다.(Custom 어노테이션)
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
// count100이 런타임동안 유지되어야 함을 의미
public @interface count100 {
}
public class MyHello {
@count100
public void MyHello(){
System.out.println("hello");
}
}
import java.lang.reflect.Method;
public class MyHelloExam {
public static void main(String[] args) {
MyHello hello=new MyHello();
try {
// 클래스 정보를 가져온 뒤 Myhello() 메소드 반환
Method method=hello.getClass().getDeclaredMethod("MyHello");
// 메소드에 count100이 부착되어있는지 검사
if(method.isAnnotationPresent(count100.class)){
for(int i=0;i<100;i++){
hello.MyHello();
}
}
else{
hello.MyHello();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
