Annotation
- 어노테이션은 주석이라는 의미를 가진다
- 어노테이션은 클래스나 메소드 위에 붙인다 @(at)기호로 이름이 시작한다
- 어노테이션을 클래스나 메타코드에 붙인 후, 클래스가 컴파일되거나 실행될 때 어노테이션의 유무나 어노테이션에 설정된 값을 통하여 클래스가 좀 더 다르게 실행되게 할 수 있습니다
- 설정파일처럼 설명하는 경우도 있다
- 사용자가 직접 작성하는 어노테이션을 Custom 어노테이션이라고 한다
Custom 어노테이션을 이용하는 방법
- 어노테이션을 정의한다
- 어노테이션을 클래스에서 사용한다(타켓에 적용)
- 어노테이션을 이용하여 실행
ex)
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Count100 {
}
public class MyHello {
@Count100
public void hello(){
System.out.println("hello");
}
}
import java.lang.reflect.Method;
public class MyHelloExam {
public static void main(String[] args) {
MyHello hello = new MyHello();
try{
Method method = hello.getClass().getDeclaredMethod("hello");
if(method.isAnnotationPresent(Count100.class)){
for(int i = 0; i < 100; i++){
hello.hello();
}
}else{
hello.hello();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
*위 게시물은 프로그래머스<자바중급>을 복습하며 작성한 글입니다*
'JAVA' 카테고리의 다른 글
JAVA(2022.06.01) - Inner nested class (0) | 2022.06.01 |
---|---|
JAVA(2022.05.31) - Thread (0) | 2022.05.31 |
JAVA(2022.05.29) - char 단위 입출력(Console, File) (0) | 2022.05.29 |
JAVA(2022.05.28) - 다양한 타입의 출력(DataOutputStream, DataInputStream) (0) | 2022.05.28 |
JAVA(2022.05.27) - Byte 단위 입출력 심화 (0) | 2022.05.27 |