Java中的字段 getDeclaredAnnotations() 方法及示例
Java.lang.reflect.Field的getDeclaredAnnotations()方法用于返回直接存在于此 Field 对象上的注释并忽略继承的注释。如果此元素上没有直接存在的注释,则返回值为空数组。调用者可以修改返回的数组作为方法发送的实际对象的副本;它不会影响返回给其他调用者的数组。
句法:
public Annotation[] getDeclaredAnnotations()
参数:此方法不接受任何内容。
Return :此方法返回直接存在于此元素上的注释。
下面的程序说明了 getDeclaredAnnotations() 方法:
方案一:
// Java program to illustrate
// getDeclaredAnnotations() method
import java.lang.annotation.*;
import java.lang.reflect.Field;
import java.util.Arrays;
public class GFG {
// initialize field with annotation
private int @SpecialNumber[] number;
public static void main(String[] args)
throws NoSuchFieldException
{
// get Field object
Field field
= GFG.class.getDeclaredField("number");
// apply getAnnotatedType() method
Annotation[] annotations
= field.getDeclaredAnnotations();
// print the results
System.out.println(
Arrays
.toString(annotations));
}
@Target({ ElementType.TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
private @interface SpecialNumber {
}
}
输出:
[]
方案二:
// Java program to illustrate
// getDeclaredAnnotations() method
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.util.Arrays;
public class GFG {
// initialize field with annotation
@Deprecated
private String string
= " Welcome to GeeksForGeeks";
public static void main(String[] args)
throws NoSuchFieldException
{
// create Field object
Field field
= GFG.class
.getDeclaredField("string");
// apply getAnnotation()
Annotation[] annotations
= field.getDeclaredAnnotations();
// print results
System.out.println(
Arrays
.toString(annotations));
}
}
输出:
[@java.lang.Deprecated()]
参考: https: Java/lang/reflect/Field.html#getDeclaredAnnotations–