我可以使用 org.reflection 通过通配符获取包 类 吗?
I can use org.reflection to get package classes using wildcard?
我正在使用
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
但是通过这种方法,我在包级别得到了很多我不需要的注释...
我真正想要的是这样的东西,使用通配符仅返回深层包级别。
Reflections reflections = new Reflections("com.mypackage.root.*.deep", new MethodAnnotationsScanner())
因为我真正需要的方法是在“.deep”包级别...我尝试了很多与 FilterBuilder 的组合,然后我不知道我是否做错了什么或者这是不可能的这个API
尝试
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
Set<Method> methods = reflections
.getMethodsAnnotatedWith(MyAnnotation.class).stream()
.filter(method -> method.getDeclaringClass().getPackage().getName().matches("com.mypackage.root.*.deep"))
.collect(Collectors.toSet());
下面的代码对我来说工作正常。
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setUrls(ClasspathHelper.forPackage("com.package.root"))
.setScanners(new MethodAnnotationsScanner()));
Set<Method> methods = reflections.getMethodsAnnotatedWith(MyRequestMapping.class);
我使用了 org.reflections
依赖项。
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
</dependency>
我正在使用
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
但是通过这种方法,我在包级别得到了很多我不需要的注释... 我真正想要的是这样的东西,使用通配符仅返回深层包级别。
Reflections reflections = new Reflections("com.mypackage.root.*.deep", new MethodAnnotationsScanner())
因为我真正需要的方法是在“.deep”包级别...我尝试了很多与 FilterBuilder 的组合,然后我不知道我是否做错了什么或者这是不可能的这个API
尝试
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
Set<Method> methods = reflections
.getMethodsAnnotatedWith(MyAnnotation.class).stream()
.filter(method -> method.getDeclaringClass().getPackage().getName().matches("com.mypackage.root.*.deep"))
.collect(Collectors.toSet());
下面的代码对我来说工作正常。
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setUrls(ClasspathHelper.forPackage("com.package.root"))
.setScanners(new MethodAnnotationsScanner()));
Set<Method> methods = reflections.getMethodsAnnotatedWith(MyRequestMapping.class);
我使用了 org.reflections
依赖项。
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
</dependency>