91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
烟台市| 成武县| 周宁县| 磐石市| 卢龙县| 靖州| 张家口市| 横峰县| 老河口市| 中方县| 北海市| 黄冈市| 新田县| 滕州市| 都昌县| 霍林郭勒市| 湾仔区| 榕江县| 平果县| 兴业县| 揭阳市| 梨树县| 邯郸县| 华安县| 长丰县| 保靖县| 荣成市| 沂源县| 盐城市| 锡林浩特市| 芦溪县| 宿松县| 黄大仙区| 麟游县| 贞丰县| 建瓯市| 广西| 铜山县| 北川| 铁力市| 芦山县|