📜  Java中的字段 getGenericType() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:32.207000             🧑  作者: Mango

Java中的字段 getGenericType() 方法及示例

在 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 类型。注意,getGenericType() 方法返回的是字段的泛型类型,因此返回值中包含尖括号。