當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Field getAnnotationsByType()用法及代碼示例


java.lang.reflect.Field的getAnnotationsByType()方法用於返回與此字段元素關聯的注釋。這是獲取Field對象注釋的重要方法。如果沒有與此Field元素關聯的注釋,則返回空數組。調用者可以將返回的數組修改為方法發送的實際對象的副本;它對返回給其他調用方的數組沒有影響。

用法:

public <T extends Annotation> T[] 
  getAnnotationsByType(Class<T> annotationClass)

參數:此方法接受注釋類,它是與注釋類型相對應的Class對象。


返回:如果與此元素相關聯,則此方法針對指定的注釋類型返回此元素的所有注釋,否則返回長度為零的數組。

異常注意:如果給定的注釋類為null,則此方法將引發NullPointerException。

以下示例程序旨在說明getAnnotationsByType()方法:
示例1:

// Java program to illustrate 
// getAnnotationsByType() method 
  
import java.lang.annotation.*; 
import java.lang.reflect.Field; 
import java.util.Arrays; 
  
public class GFG { 
  
    // initialize field with 
    // default value in annotation 
    @annotations(32512.21) 
    private double realNumbers; 
  
    public static void main(String[] args) 
        throws NoSuchFieldException 
    { 
  
        // create Field object 
        Field field 
            = GFG.class
                  .getDeclaredField("realNumbers"); 
  
        // apply getAnnotationsByType() 
        annotations[] annotations 
            = field.getAnnotationsByType( 
                annotations.class); 
  
        // print results 
        System.out.println( 
            Arrays 
                .toString(annotations)); 
    } 
  
    @Target({ ElementType.FIELD }) 
    @Retention(RetentionPolicy.RUNTIME) 
    private @interface annotations { 
        double value() default 99.9; 
    } 
}
輸出:
[@GFG$annotations(value=32512.21)]

示例2:

// Java program to illustrate 
// getAnnotationsByType() method 
  
import java.lang.annotation.*; 
import java.lang.reflect.Field; 
import java.util.Arrays; 
  
public class GFG { 
  
    // initialize field with 
    // default value in annotation 
    @annotations("ChipherCodes@#!") 
    private double string; 
  
    public static void main(String[] args) 
        throws NoSuchFieldException 
    { 
  
        // create a Field object 
        Field field 
            = GFG.class
                  .getDeclaredField("string"); 
  
        // apply getAnnotationsByType() 
        annotations[] annotations 
            = field.getAnnotationsByType( 
                annotations.class); 
  
        // print results 
        System.out.println( 
            Arrays.toString( 
                annotations)); 
    } 
  
    @Target({ ElementType.FIELD }) 
    @Retention(RetentionPolicy.RUNTIME) 
    private @interface annotations { 
        String value(); 
    } 
}
輸出:
[@GFG$annotations(value=ChipherCodes@#!)]

參考文獻: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#getAnnotationsByType-java.lang.Class-



相關用法


注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 Field getAnnotationsByType() method in Java With Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。