久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java怎么獲取泛型的類名

139次閱讀
沒有評論

共計 963 個字符,預計需要花費 3 分鐘才能閱讀完成。

在 Java 中,無法在運行時直接獲取泛型的類型參數(shù),因為 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>,并使用反射在構造方法中獲取泛型類型參數(shù)的類名。在main 方法中,我們創(chuàng)建了一個 GenericClass<String> 的實例,并通過 getGenericType() 方法獲取泛型類型的類名。

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

丸趣 TV 網(wǎng) – 提供最優(yōu)質的資源集合!

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-12-12發(fā)表,共計963字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 磐安县| 土默特右旗| 安仁县| 通辽市| 武义县| 新巴尔虎右旗| 中牟县| 铜川市| 图们市| 罗源县| 兴山县| 鸡东县| 金昌市| 安新县| 左贡县| 罗源县| 延安市| 沁阳市| 满城县| 平果县| 万荣县| 丹凤县| 鹤峰县| 德庆县| 岳普湖县| 衡山县| 福贡县| 凤城市| 长岛县| 犍为县| 乐都县| 墨江| 南和县| 四平市| 通河县| 汾西县| 岳普湖县| 江陵县| 隆昌县| 乌拉特中旗| 巴塘县|