温馨提示×

java怎么获取泛型的类型

小亿
123
2024-07-27 03:29:09
栏目: 编程语言
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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()方法,就可以获取到泛型的类型。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:java怎么获取泛型的实际类型

0