📅  最后修改于: 2023-12-03 15:16:32.207000             🧑  作者: Mango
在 Java 编程语言中,字段是在类中声明的变量。Java 利用字段来表示对象的状态或一些重要的属性。其中,getGenericType() 方法用来返回字段的泛型类型。
以下是该方法的语法:
Type getGenericType()
getGenericType() 方法返回 Type 对象,它表示字段的泛型类型。如果字段没有声明泛型类型,则返回它的非泛型类型。
以下示例演示了如何使用 getGenericType() 方法来获取一个字符串类型的名字:
import java.lang.reflect.Field;
import java.lang.reflect.Type;
class Person {
private String name;
}
public class Main {
public static void main(String[] args) throws Exception {
Field field = Person.class.getDeclaredField("name");
Type type = field.getGenericType();
System.out.println(type.getTypeName());
}
}
在上面的示例中,我们首先创建了一个 Person 类和一个名为 name 的私有字段。然后,我们使用 getClass() 方法获取 Person 类的实例的 Class 对象,接着我们使用 getDeclaredField() 方法获取了 name 字段的 Field 对象。最后,我们使用 getGenericType() 方法获取了 name 字段的泛型类型,并使用 getTypeName() 方法获取其名称。
上述示例输出结果为:
java.lang.String
这是因为 name 字段的类型为 String 类型。如果我们更改字段的类型为 ArrayList,例如:
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.ArrayList;
class Person {
private ArrayList<String> name;
}
public class Main {
public static void main(String[] args) throws Exception {
Field field = Person.class.getDeclaredField("name");
Type type = field.getGenericType();
System.out.println(type.getTypeName());
}
}
则输出结果为:
java.util.ArrayList<java.lang.String>
这是因为 name 字段的类型现在为 ArrayList