亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java怎么獲取泛型的類名

小億
154
2023-11-14 00:42:42
欄目: 編程語言

在Java中,無法在運行時直接獲取泛型的類型參數,因為Java的泛型擦除機制會將泛型類型擦除為其原始類型。

但是,可以使用反射來獲取泛型類型的類名。下面是一個示例:

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

public class GenericClass<T> {
    private Class<?> genericType;

    public GenericClass() {
        Type superClass = getClass().getGenericSuperclass();
        if (superClass instanceof ParameterizedType) {
            ParameterizedType parameterizedType = (ParameterizedType) superClass;
            Type[] typeArgs = parameterizedType.getActualTypeArguments();
            if (typeArgs.length > 0) {
                this.genericType = (Class<?>) typeArgs[0];
            }
        }
    }

    public Class<?> getGenericType() {
        return genericType;
    }

    public static void main(String[] args) {
        GenericClass<String> genericClass = new GenericClass<>();
        Class<?> genericType = genericClass.getGenericType();
        System.out.println(genericType.getName());  // 輸出: java.lang.String
    }
}

在上面的示例中,我們定義了一個泛型類GenericClass<T>,并使用反射在構造方法中獲取泛型類型參數的類名。在main方法中,我們創建了一個GenericClass<String>的實例,并通過getGenericType()方法獲取泛型類型的類名。

需要注意的是,這種方法僅適用于直接繼承泛型類的情況。對于間接繼承泛型類或實現泛型接口的情況,需要對繼承層級進行遞歸處理。

0
府谷县| 安平县| 英超| 社旗县| 绥宁县| 同德县| 金阳县| 凤山县| 鄱阳县| 蕲春县| 宁晋县| 长宁县| 封开县| 天气| 武邑县| 泉州市| 探索| 晋州市| 云梦县| 莱芜市| 西平县| 左云县| 满洲里市| 商河县| 广德县| 泰和县| 宁远县| 东明县| 太仓市| 南开区| 吴忠市| 平顶山市| 慈利县| 盘锦市| 西乡县| 万盛区| 抚远县| 凉山| 穆棱市| 宜宾市| 南皮县|