java - 我可以使用 org.reflection 来获取使用通配符的包类吗?
问题描述
我正在使用
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());
推荐阅读
- smtp - 从我的域向 gmail 发送电子邮件的问题
- database-design - 用于最小化检索时间的结构关系数据库
- css - Angular 7 - 更改组件的背景颜色
- javascript - 将 Nowjs 托管的 Node.js 服务器连接到 MongoDB Atlas DB
- jquery - 使用 AJAX 编辑返回的数据并发送回编辑的数据
- amazon-web-services - 无法在 AWS Lambda 中使用 sequelize 连接到 RDS mysql
- javascript - graphqljs - 如何获取文件名和错误行
- firebase - 如何仅使用 id 在 Firebase 中检索文档
- php - 如何使用 PHP 计算网站(包含所有内容)的加载时间?
- haskell - 如何使用堆栈运行 yesod hello world 应用程序?