2013-07-22 3 views
1

Google 반사를 사용하여 내 사용자 정의 주석을위한 클래스 내부의 필드를 스캔하려고합니다. 왜 그런지는 모르겠지만 결과는 항상 빈 세트입니다.구글 반사를 사용하는 주석을위한 Java 스캐닝 클래스

테스트 클래스

public class AnnotationParser { 

    public void parse() { 
     String packagename = "com.security.rest.client"; 

     final Reflections reflections = new Reflections(packagename); 

     Set<Field> subTypes = reflections.getFieldsAnnotatedWith(Wire.class); 

     for (Field field : subTypes) { 
      System.out.println("Class : " + field.getName()); 
     } 

    } 

    public static void main(String[] args) { 
     new AnnotationParser().parse(); 
    } 

} 

주석 클래스

public class AuthenticationClient { 

    @Wire 
    public KerberosAPI kerberosAPI; 
    @Wire 
    public KerberosSessionManager kerberosSessionManager; 
} 

사용자 정의 주석

@Target(ElementType.FIELD) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Wire { 

} 

주세요 나는 다른 어떤 정보가 필요한지 안다.

답변

4

필드 주석은 기본적으로 검색되지 않습니다. FieldAnnotationScanner를 다음과 같이 스캐너 목록에 추가해야합니다.

new Reflections("com.security.rest.client", new FieldAnnotationsScanner()) 
관련 문제