📌  相关文章
📜  使用示例在Java中打包 getDeclaredAnnotationsByType() 方法(1)

📅  最后修改于: 2023-12-03 15:06:57.804000             🧑  作者: Mango

使用示例在Java中打包 getDeclaredAnnotationsByType() 方法

简介

在Java中,使用注解可以为代码添加额外的信息,这些信息可以在运行时被获取。getDeclaredAnnotationsByType(Class<T> annotationClass) 方法是Java8 新增的方法,用于获取指定类或方法上的注解信息。本文将介绍如何在Java中使用getDeclaredAnnotationsByType()方法。

示例

假设我们需要获取方法test()上的MyAnnotation注解信息,其中MyAnnotation是一个自定义注解,代码如下:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String value();
}
public class MyClass {
    @MyAnnotation("Hello World")
    public void test() {
        System.out.println("Hello World");
    }

    public static void main(String[] args) throws NoSuchMethodException {
        MyClass myClass = new MyClass();
        Method method = myClass.getClass().getMethod("test");
        MyAnnotation[] annotations = method.getDeclaredAnnotationsByType(MyAnnotation.class);
        System.out.println(Arrays.toString(annotations));
    }
}

在main方法中,我们通过反射获取了MyClass类中的test()方法,并使用getDeclaredAnnotationsByType(MyAnnotation.class)方法获取了这个方法上的MyAnnotation注解信息。最终,我们会得到一个包含一个元素的MyAnnotation数组。

输出结果如下:

[@MyAnnotation(value=Hello World)]
总结

使用getDeclaredAnnotationsByType(Class<T> annotationClass)方法可以方便地获取到指定类或方法上的注解信息。在使用时需要注意,需要在自定义注解中添加@Retention(RetentionPolicy.RUNTIME),否则注解信息在运行时无法获取。