ParameterizedType 是 Java 中的一个接口,用于表示参数化类型(泛型)。在 Java 中,泛型是一种强大的类型机制,允许我们编写更通用、类型安全的代码。
ParameterizedType 接口的作用是用来获取泛型类型的参数信息。当我们使用泛型时,可以通过 ParameterizedType 接口来获取泛型的实际类型参数。
例如,如果有一个类 MyClass,我们可以通过反射获取其泛型类型的实际参数类型。假设我们有以下代码:
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class MyClass<T> {
public void printType() {
// 获取父类的泛型类型
Type type = getClass().getGenericSuperclass();
if (type instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
for (Type t : actualTypeArguments) {
System.out.println(t.getTypeName());
}
}
}
}
然后,我们可以通过以下方式获取泛型的实际参数类型:
public class MySubClass extends MyClass<String> {
public static void main(String[] args) {
MySubClass mySubClass = new MySubClass();
mySubClass.printType(); // 输出:java.lang.String
}
}
在上面的例子中,MySubClass 继承了 MyClass,通过 printType 方法可以获取到 String 类型作为泛型类型的实际参数。这样我们可以在运行时动态获取泛型的类型信息,从而进行更灵活的操作。