我可以使用 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>