如何从注释中读取传递给类注释的类名

时间:2018-06-18 11:04:05

标签: java junit java-annotations

我创建了自己的注释,此注释会收到class.class。该类本身正在扩展另一个类。

我正在尝试实现与使用@RunWith()几乎相同的功能,但是我不想运行该类,而是使用它来获取父类中的class.class,所以我不需要将其发送到@Before注释。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface RunWithClass {
  /** @return the classes to be run */
  Class<?>[] value();
}

@RunWithClass(UnitTests.class)
public class UnitTests extends TestProxy {

and the method within TestProxy 

private void updateClassReference() {
/**
here I would like to get the class in the above case will be  UnitTests
(so I will be able to create an instance of the class for reflection
**/

}

1 个答案:

答案 0 :(得分:0)

您可以简单地获取@RunWithClass注释的值并使用它,如下所示:

Class<?>[] classesToRun = this.getClass().getAnnotation(RunWithClass.class).value();

如果你澄清你的问题,我可以尝试给出更好的答案。