如果存在这样的注释,则使用java.lang.reflect.Field的getAnnotation()方法来返回指定类型的Field对象的返回值,否则返回null。这是获取Field对象注释的重要方法。
用法:
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
参数:此方法注释类是与注释类型相对应的Class对象。
返回:如果此元素上存在指定的注释类型,则此方法返回该元素的注释,否则返回null。
异常注意:如果给定的注释类为null,则此方法将引发NullPointerException。
以下示例程序旨在说明getAnnotation()方法:
示例1:
// Java program to illustrate
// getAnnotation() method
import java.lang.annotation.*;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Field;
import java.util.Arrays;
public class GFG {
// initialize field with
// default value in annotation
@annotations(3125462345.32155365326)
private double realNumbers;
public static void main(String[] args)
throws NoSuchFieldException
{
// create Field object
Field field
= GFG.class
.getDeclaredField("realNumbers");
// apply getAnnotation()
annotations annotations
= field.getAnnotation(
annotations.class);
// print results
System.out.println(annotations);
}
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
private @interface annotations {
double value() default 99.9;
}
}
输出:
@GFG$annotations(value=3.1254623453215537E9)
示例2:
// Java program to illustrate
// getAnnotation() method
import java.lang.annotation.*;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Field;
import java.util.Arrays;
public class GFG {
private int @SpecialNumber[] number;
public static void main(String[] args)
throws NoSuchFieldException
{
// get Field object
Field field
= GFG.class
.getDeclaredField("number");
// apply getAnnotation() method
AnnotatedType annotatedType
= field.getAnnotation();
// print the results
System.out.println(
"Type: "
+ annotatedType.getType()
.getTypeName());
System.out.println(
"Annotations: "
+ Arrays.toString(
annotatedType
.getAnnotations()));
System.out.println(
"Declared Annotations: "
+ Arrays.toString(
annotatedType
.getDeclaredAnnotations()));
}
@Target({ ElementType.TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
private @interface SpecialNumber {
}
}
输出:
@GFG$annotations(value=WelcomeTOGFG)
参考文献: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#getAnnotation–
相关用法
- Java Class getAnnotation()用法及代码示例
- Java Package getAnnotation()用法及代码示例
- Java Constructor getAnnotation()用法及代码示例
- Java Field set()用法及代码示例
- Java Field get()用法及代码示例
- Java Field getDouble()用法及代码示例
- Java Field getGenericType()用法及代码示例
- Java Field getFloat()用法及代码示例
- Java Field getModifiers()用法及代码示例
- Java Field getLong()用法及代码示例
- Java Field hashCode()用法及代码示例
- Java Field getDeclaredAnnotations()用法及代码示例
- Java Field getAnnotationsByType()用法及代码示例
- Java Field isEnumConstant()用法及代码示例
- Java Field toString()用法及代码示例
注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 Field getAnnotation() method in Java With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。