2013-07-22 86 views
1

我正在嘗試使用Google反射爲我的自定義註釋掃描類內的字段。我不知道爲什麼,但結果總是空的。使用Google Reflections進行註釋的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())