我有以下代码。它适用于加载我指出的类 TestSuiteSample。TestSuiteSample 只是一个带有注释的标准 JUnit4 测试套件。作为正常的 java 项目运行,这将打印“true”,但在 eclipse rcp 下运行,这将打印“false”。任何想法为什么?
File testSuiteDir = new File("D:/TestDir/");
URL classUrl;
classUrl = testSuiteDir.toURI().toURL();
URL[] classUrls = { classUrl };
URLClassLoader ucl = new URLClassLoader(classUrls);
Class<?> cls = ucl.loadClass("TestSuiteSample");
if (cls.isAnnotationPresent(SuiteClasses.class)) {
System.out.println("true");
} else {
System.out.println("false");
}
我试过这个来检查 cls 中的注释,但仍然返回 0 个注释。
Annotation[] annotations = new TestClass(clazz).getAnnotations();
for (Annotation annotation : annotations) {
System.out.println(annotation.annotationType().getName());
}