温馨提示×

java怎么获取泛型的类型

小亿
106
2024-07-27 03:29:09
栏目: 编程语言

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

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

public class GenericClass<T> {

    private Class<T> type;

    public GenericClass() {
        Type genericSuperclass = getClass().getGenericSuperclass();
        if (genericSuperclass instanceof ParameterizedType) {
            ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
            this.type = (Class<T>) parameterizedType.getActualTypeArguments()[0];
        }
    }

    public Class<T> getType() {
        return type;
    }

    public static void main(String[] args) {
        GenericClass<String> genericClass = new GenericClass<String>() {};
        System.out.println(genericClass.getType()); // 输出 class java.lang.String
    }

}

在上面的示例中,我们定义了一个泛型类GenericClass,并使用反射获取了泛型类型T的实际类型。通过调用getType()方法,就可以获取到泛型的类型。

0