温馨提示×

java如何获取泛型类型

小亿
122
2024-08-05 18:01:11
栏目: 编程语言

在Java中,可以通过反射来获取泛型类型。以下是一个示例代码:

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class GenericClass<T> {
  
    public Class<T> getGenericType() {
        ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass();
        Type[] typeArguments = parameterizedType.getActualTypeArguments();
        Class<T> type = (Class<T>) typeArguments[0];
        return type;
    }
  
    public static void main(String[] args) {
        GenericClass<String> genericClass = new GenericClass<>();
        Class<String> genericType = genericClass.getGenericType();
        System.out.println(genericType.getName());
    }
}

在这个例子中,GenericClass是一个泛型类,通过调用getGenericType方法可以获取到泛型类型TClass对象。在main方法中,创建一个GenericClass对象,并获取泛型类型为StringClass对象并打印出来。

0