当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Field getAnnotation()用法及代码示例


如果存在这样的注释,则使用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–



相关用法


注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 Field getAnnotation() method in Java With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。