Base公共接口實現泛型的類型獲取

public class BaseDao<T> implements IBaseDao<T> {

    /**
     * 實際操作對象的類型
     */
    private Class<T> clazz;

    /**
     * 操作對象的對象名
     */
    private String className;

    public BaseDao() {
        Type type = this.getClass().getGenericSuperclass();

        // 將獲取到的類型轉換爲參數化類型
        ParameterizedType tp = (ParameterizedType) type;

        // 從參數化類型中獲取實際類型
        Type[] types = tp.getActualTypeArguments();

        // 強轉爲class字節碼對象
        clazz = (Class<T>) types[0];

        // 從字節碼對象中獲取參數對象名稱
        className = clazz.getSimpleName();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章