首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为“当前”应用程序使用Java反射?

如何为“当前”应用程序使用Java反射?
EN

Stack Overflow用户
提问于 2022-07-20 19:25:27
回答 2查看 102关注 0票数 0

文档 for 反思给出了关于如何使用反射的第一行:

代码语言:javascript
复制
Reflections reflections = new Reflections("com.my.project");

但我不知道包裹的名字。这是一段库代码,应该能够扫描当前包中的所有内容。

什么是与.NET对应的反射:

代码语言:javascript
复制
//Find all methods in all classes tagged with @Test annotation, 
//and add them to a list.
List<MethodInfo> testMethods = new ArrayList<>();

//Enumerate all assemblies in the current application domain
for (Assembly a : AppDomain.currentDomain.getAssemblies()) {
   //Look at each type (i.e. class) in the assembly
   for (Type t : a.getTypes()) {
      ...
   }
}

换句话说,“当前”的一揽子计划?或者用.NET的话来说

  • AppDomain.currentDomain

编辑

  • 是复制品吗?不是的。
  • 这难道不是一个程序问题吗?不是
  • 它需要细节还是清晰?不是
  • 需要更多的关注吗?不是
  • 是基于意见吗?不是

奖金阅读

最后一根稻草:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-22 21:08:28

做不到。

Java没有反射系统

研究工作

票数 0
EN

Stack Overflow用户

发布于 2022-07-20 19:52:47

Java的“包”概念比.net弱得多。在Java中,包含类的包在大多数情况下只是类名的前缀。

OSGi和最近使用模块的Java版本都有一个更强大的模型。

如果您将文档读入https://github.com/ronmamo/reflections#scan,您将看到有许多过滤器可以应用于控制这个库所查看的内容。如果您正在编写一个库,您可以向调用方公开该API并让他们告诉您要查看哪些类,或者自己决定要查看什么。但是,据我在该文档中所见,不需要有一个焦点Java包。

调用this.getClass().getPackage().getName()将意味着反射只查看您的代码,而不是使用您的库的应用程序的其余部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73057164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档