目录

java-field.gettype_Java-Field-getGenericType用法及代码示例

目录

java field.gettype_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