Java/Basic

[Java-Basic] Reflection API 를 사용하여 Custom Annotation 만들기

Jeong Jeon
반응형

1). Test.java

  • @interface 를 사용하여 Annotation을 바로 만들수 있다.
  • @Target(ElementType.TYPE)
    • 필드, 메소드, 클래스 등 모든 곳에 어노테이션을 붙일 수 있게 되는데 어노테이션 사용을 허가하는 target을 설정할 수 있다.
    • 타입 값에만 Annotation 적용 설정하여 사용했다.
  • @Retention(RetentionPolicy.RUNTIME)
    • 어노테이션을 주석과 같은 취급을 받기 때문에 정보가 클래스에까지는 남지만 바이트 코드를 로딩하고 난 후 메모리에는 어노테이션의 정보는 가지고 오지 않는다.
    • 메모리에도 적재하기 위해서는 어노테이션 클래스에 @Retention(RetentionPolicy.RUNTIME) 어노테이션을 붙여야 한다
@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.TYPE) 
public @interface Test { 
    boolean testM() default true; 
    int instance() default 1; 
    int poolSize() default 100; 
}

2).사용하는곳.java

  • @interface에서 만든 testM() / instance() / poolsize()를 사용한다.
  • 현재는 간단한 예재로 사용하였지만, 파라미터 값으로 전달 후 그 값을 이용하여 적용 시킬 수 있다.
  • Java에서의 Powerful한 사용이 예상된다.
@Test(instance = 2, testM = true, poolSize = 200) 
public class TestClass {}

 

반응형