📅  最后修改于: 2023-12-03 15:16:34.018000             🧑  作者: Mango
Java中的类 getDeclaredAnnotationsByType()
方法是用于返回某个类或者方法上指定类型的注解数组。该方法可以通过反射机制实现,对于需要获取一个类或方法上的注解信息时,可以使用该方法进行查询。
public <T extends Annotation> T[] getDeclaredAnnotationsByType(Class<T> annotationClass)
annotationClass
:要查询的注解类型。import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@interface MyAnnotation {
String value();
}
@MyAnnotation("Hello")
public class MyClass {
@MyAnnotation("World")
public void myMethod() {
// ...
}
public static void main(String[] args) {
// 使用反射获取类上的注解
MyAnnotation[] classAnnotation = MyClass.class.getDeclaredAnnotationsByType(MyAnnotation.class);
System.out.println("类上的注解信息:");
for (MyAnnotation annotation : classAnnotation) {
System.out.println(annotation.value());
}
// 使用反射获取方法上的注解
MyAnnotation[] methodAnnotation = null;
try {
methodAnnotation = MyClass.class.getDeclaredMethod("myMethod").getDeclaredAnnotationsByType(MyAnnotation.class);
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
System.out.println("方法上的注解信息:");
for (MyAnnotation annotation : methodAnnotation) {
System.out.println(annotation.value());
}
}
}
使用反射机制获取类和方法上的注解信息。
输出结果:
类上的注解信息:
Hello
方法上的注解信息:
World
以上程序演示了如何使用Java中的类 getDeclaredAnnotationsByType()
方法来获取类和方法上指定类型的注解信息。在该示例中,定义了一个 MyAnnotation
注解,分别为类和方法添加了注解,并使用 getDeclaredAnnotationsByType()
方法获取注解信息。