gpt4 book ai didi

JAVA - 如何从Annotation获取注解?

转载 作者:行者123 更新时间:2023-11-30 08:05:39 24 4
gpt4 key购买 nike

我想从注释中获取注释,但奇怪的是我无法从注释实例中获取单个注释。我该如何解决这个问题?我想从此注解实例中获取注解。

public static void test(Annotation annotation) {
System.out.println("ValidBoolean annotation len:" + ValidBoolean.class.getAnnotations().length);
System.out.println(annotation.getClass().getName() + ":" + annotation.getClass().getAnnotations().length);
if (annotation instanceof ValidBoolean) {
ValidBoolean validBoolean = (ValidBoolean) annotation;
System.out.println("[BOOLEAN]" + validBoolean.getClass().getName() + ":" + validBoolean.getClass().getAnnotations().length);
}
}

打印结果为:

ValidBoolean annotation len:3
com.sun.proxy.$Proxy28:0
[BOOLEAN]com.sun.proxy.$Proxy28:0

最佳答案

如果我没理解错的话,你想做的是:

Annotation[] annotationAnnotations = annotation.annotationType().getAnnotations();

一般来说,annotationType()这样工作

someClass.getAnnotation(someAnnotationClass).annotationType() == someAnnotationClass

所以 annotation instanceof ValidBoolean 也意味着 annotation.annotationType() == ValidBoolean.class,因此调用 .getAnnotations() 将导致相同的注释。

关于JAVA - 如何从Annotation获取注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938695/

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