通过成员注解获取外部class

Get outer class by member annotation

我有一个 class,其中一个 class 字段带有自定义注释:

public class Test {

    @CustomAnnotation
    private String name;

    ...
}

我只想知道这个注解是否可以得到Class<Test>?找不到合适的 api..

public Class<?> getOuterClass(CustomAnnotation annotation) {
    ...
}

@CustomAnnotation 声明为 @Retention(RetentionPolicy.RUNTIME)

不,注解不存储关于它声明位置的任何数据。
注释也可以像任何普通接口一样工作,因此有人可以在 class 中实现注释并创建从未用作注释的实例。

您需要自己包含该信息,方法是将参数添加到注释然后使用它 @CustomAnn(Test.class),或者在阅读注释时,请记住并将该信息自己包含在其他对象中。