gpt4 book ai didi

java - 获取自定义注释的目标元素类型

转载 作者:行者123 更新时间:2023-12-02 09:27:38 24 4
gpt4 key购买 nike

我有一个自定义注释:

@Target({ElementType.METHOD}) // NOTE: ElementType is METHOD
public @interface MyAnnotation {
}

我有一个采用通用有界类型的通用类:

class MyWork<T extends Annotation> {
T theAnnotation;

public ElementType checkAnnotationElementType() {
// how to get the target elementType of theAnnoation?
}

}

我想要实现的是获取T theAnnotation的目标元素类型。例如我想要达到的最终结果是:

 MyWork<MyAnnotation> foo = new MyWork();
ElementType type = foo.checkAnnotationElementType(); // returns ElementType.METHOD

如何从泛型类型变量 theAnnotation 获取元素类型?

最佳答案

你可以做类似的事情。从注释中获取注释。请注意,注释可以有多个目标类型。

注意 - 您必须以某种方式实例化您的字段 - 构造函数似乎是个好方法,可以省略泛型。

ElementType[] target = new MyWork<>(MyAnnotation.class).checkAnnotationElementType();
class MyWork<T extends Annotation> {

private final Class<T> annotationClass;

public MyWork(Class<T> annotationClass) {
this.annotationClass = annotationClass;
}

public ElementType[] checkAnnotationElementType() {
return annotationClass.getAnnotation(Target.class).value();
}
}

关于java - 获取自定义注释的目标元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58226843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com