2015-09-25 46 views
0

我正在從org.reflections升級:反射:0.9.5到版本0.9.9。我使用:Java反射:獲取類但不是子類

Reflections reflectionPaths = new Reflections("resources", new TypeAnnotationsScanner()); 
Set<Class<?>> rootResourceClasses = reflectionPaths.getTypesAnnotatedWith(Path.class); 

這讓我在resources包中的所有類與@Path註釋。 由於庫已更新,頂行需要額外的new SubTypesScanner()才能運行代碼。但是我不希望子類型被返回。

如何使用這個新版本的庫來僅撤回不是子類型的類和接口?


我得到這個異常,如果我不包括SubTypesScanner

org.reflections.ReflectionsException: Scanner SubTypesScanner was not configured 
    at org.reflections.Store.get(Store.java:58) 
    at org.reflections.Store.get(Store.java:70) 
    at org.reflections.Store.getAll(Store.java:97) 
    at org.reflections.Reflections.getAllAnnotated(Reflections.java:423) 
    at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:384) 
    at org.reflections.Reflections.getTypesAnnotatedWith(Reflections.java:370) 

回答

5

我相信你使用這個註釋 「javax.ws.rs.Path」。請試試這個: -

Reflections reflectionPaths = new Reflections("resources", new TypeAnnotationsScanner()); 
Set<Class<?>> rootResourceClasses = reflectionPaths.getTypesAnnotatedWith(Path.class, true);