jam*_*kes 5 java reflection annotations
我正在使用 org.reflections 库来检测我的项目中注释的一些类。当我从 eclipse 运行该项目时,会找到带注释的类。
但是,当项目打包成JAR文件并运行时,找不到带注释的类。
这是一些示例代码:
@TestAnnotation
public class App {
public static void main (String[] args) {
Reflections reflections = new Reflections("com.package");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(TestAnnotation.class);
for (Class c : annotated) {
System.out.println ("found annotated class " + c.getName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在 JAR 文件中运行此代码时,没有输出。我究竟做错了什么?
谢谢
注意
\n\nReflections reflections = new Reflections("com.package");\nRun Code Online (Sandbox Code Playgroud)\n\n在那里,您尝试探索嵌套在com包中的包package 中的带注释的类。但是是Java关键字。所以它不能用作包名。在我搬进 com 包后,一切正常。packageAppTestAnnotation
但也有可能你的情况真的很糟糕。可能是某些工具或某些人创建的具有包名称的包(例如,使用西里尔字母\xd0\xb0而不是拉丁字母a,两者在编辑器中看起来相同,但对于 Java 来说完全不同)。当字母混合时,一切看起来都很好,但不起作用。因此,尝试创建新的有效根包并将您的类移入其中。
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |