`MyAnnotation`이라는 애너테이션을 정의해보자.
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 애너테이션의 유지 정책을 RUNTIME으로 설정
// 애너테이션 정보가 런타임 시에도 유지되도록
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD}) // 애너테이션을 클래스와 메서드에 적용할 수 있도록 설정 -> `ElementType.TYPE`은 클래스에, `ElementType.METHOD`는 메서드에 적용할 수 있다.
public @interface MyAnnotation { //`@interface` 키워드를 사용하여 애너테이션을 선언
// 애너테이션 멤버 선언
String value() default ""; // 기본값이 빈 문자열인 value 멤버 선언
int count() default 0; // 기본값이 0인 count 멤버 선언
}
정의된 `MyAnnotation` 애너테이션은 다음과 같이 사용할 수 있겠다.
`MyAnnotation` 애너테이션은 클래스와 메서드에 각각 적용되어 사용될것이다.
@MyAnnotation(value = "Hello", count = 5)
public class MyClass {
@MyAnnotation(value = "World", count = 10)
public void myMethod() {
// 메서드 구현
}
}
'JAVA' 카테고리의 다른 글
스레드의 우선순위 setPriority() (0) | 2024.02.19 |
---|---|
스레드 구현과 실행 + 싱글쓰레드와 멀티쓰레드: start()와 run() (0) | 2024.02.19 |
Annotation - @Repeatable (0) | 2024.02.15 |
Annotation - @Retention (0) | 2024.02.15 |
Annotation - @Inherited (0) | 2024.02.15 |