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


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


java.lang.reflect.Field的getGenericType()方法用於返回表示該Field對象聲明類型的Type對象。返回的類型對象可以是Type子接口的實現之一:GenericArrayType,ParameterizedType,WildcardType,TypeVariable,Class。如果“字段類型”對象是參數化類型,則返回的“類型”對象必須準確反映源代碼中使用的實際類型參數,並且如果基礎字段的類型是類型變量或參數化類型,則將創建它。否則,解決。

用法:

public Type getGenericType()

參數:此方法接受不接受任何內容。


返回:此方法返回一個Type對象,該對象表示此Field對象表示的字段的聲明的類型。

異常:此方法返回以下異常:

  • GenericSignatureFormatError:如果通用字段簽名不符合Java™虛擬機規範中指定的格式。
  • TypeNotPresentException:如果基礎字段的通用類型簽名引用了不存在的類型聲明。
  • MalformedParameterizedTypeException:如果基礎字段的通用簽名引用由於某種原因而無法實例化的參數化類型。

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

// Java program to illustrate 
// getGenericType() method 
  
import java.lang.reflect.Field; 
import java.lang.reflect.Type; 
  
public class GFG { 
  
    // initialize field 
    private static int number; 
  
    public static void main(String[] args) 
        throws NoSuchFieldException 
    { 
        // get Field object 
        Field field 
            = GFG.class
                  .getDeclaredField("number"); 
  
        // apply getGenericType() method 
        Type type = field.getGenericType(); 
  
        // print Results 
        System.out.println( 
            "Type class: "
            + type.getClass()); 
        System.out.println( 
            "Type name: "
            + type.getTypeName()); 
    } 
}
輸出:
Type class: class java.lang.Class
Type name: int

示例2:

// Java program to illustrate 
// getGenericType() method 
  
import java.lang.reflect.Field; 
import java.lang.reflect.Type; 
  
public class GFG { 
  
    // initialize field 
    final static String value = "Geeks"; 
  
    public static void main(String[] args) 
        throws NoSuchFieldException 
    { 
  
        // get Field object 
        Field field 
            = GFG.class
                  .getDeclaredField("value"); 
  
        // apply getGenericType() method 
        Type type = field.getGenericType(); 
  
        // print Results 
        System.out.println( 
            "Type class: "
            + type.getClass()); 
        System.out.println( 
            "Type name: "
            + type.getTypeName()); 
    } 
}
輸出:
Type class: class java.lang.Class
Type name: java.lang.String

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



相關用法


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