📜  Java中的字段 getDeclaredAnnotations() 方法及示例(1)

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

Java中的字段 getDeclaredAnnotations() 方法及示例

在Java中,每个字段都可以有一个或多个注释,这些注释可以在代码中使用反射来获取。getDeclaredAnnotations() 方法就是用来获取一个字段的所有注释的。

方法介绍

getDeclaredAnnotations() 方法是 java.lang.reflect.Field 类中的方法,用来获取指定字段所有的注释。该方法返回一个 Annotation[] 数组,该数组包含了所有与字段相关的注释。

方法定义如下:

public Annotation[] getDeclaredAnnotations()
示例

下面是一个示例程序,演示了如何使用 getDeclaredAnnotations() 方法来获取字段的注释:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
import java.lang.reflect.Field;

public class FieldAnnotationsExample {
    
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    @interface ExampleAnnotation {
        public String value();
    }
    
    @ExampleAnnotation("example value")
    private static String exampleField = "example";
    
    public static void main(String[] args) {
        Field field = FieldAnnotationsExample.class.getDeclaredFields()[0];
        Annotation[] annotations = field.getDeclaredAnnotations();
        
        for (Annotation annotation : annotations) {
            if (annotation instanceof ExampleAnnotation) {
                ExampleAnnotation exampleAnnotation = (ExampleAnnotation) annotation;
                System.out.println(exampleAnnotation.value()); // 输出 example value
            }
        }
    }
}

在这个示例中,我们定义了一个名为 ExampleAnnotation 的注释,来注释字段 exampleFieldmain() 方法首先通过反射获取了 exampleField 字段,并调用 getDeclaredAnnotations() 方法获取该字段的所有注释。我们在循环中遍历了所有的注释,并将所有的 ExampleAnnotation 注释输出。

输出如下:

example value

这证明了我们成功地获取了字段的注释并将其输出到控制台上。

总结

getDeclaredAnnotations() 方法可以用来获取字段的所有注释。我们可以通过遍历所获取的注释数组,并判断每个注释的类型,来获取我们需要的注释。

以上就是 Java 中的字段 getDeclaredAnnotations() 方法及示例的介绍。