Reflections reflections = new Reflections("com.my.project");但我不知道包裹的名字。这是一段库代码,应该能够扫描当前包中的所有内容。
什么是与.NET对应的反射:
//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编辑
奖金阅读
最后一根稻草:
发布于 2022-07-22 21:08:28
做不到。
Java没有反射系统。
研究工作
发布于 2022-07-20 19:52:47
Java的“包”概念比.net弱得多。在Java中,包含类的包在大多数情况下只是类名的前缀。
OSGi和最近使用模块的Java版本都有一个更强大的模型。
如果您将文档读入https://github.com/ronmamo/reflections#scan,您将看到有许多过滤器可以应用于控制这个库所查看的内容。如果您正在编写一个库,您可以向调用方公开该API并让他们告诉您要查看哪些类,或者自己决定要查看什么。但是,据我在该文档中所见,不需要有一个焦点Java包。
调用this.getClass().getPackage().getName()将意味着反射只查看您的代码,而不是使用您的库的应用程序的其余部分。
https://stackoverflow.com/questions/73057164
复制相似问题