Java基礎學習02——通過泛型獲得Class,類似T.class
阿新 • • 發佈:2018-11-12
今天寫程式碼遇到了一個問題,我需要在通過泛型T獲取它的class,但是T.class不能用,所以才有了一下內容。
話不多說直接上程式碼
public abstract class BaseController<S extends BaseService<T> , T extends BaseEntity , V extends BaseVO> { /** * 獲取泛型對相應的Class物件 * @param index * @return * @author 劉朋 * <br/>date 2018-11-12 */ public Class<T> getTClass(){ //返回表示此 Class 所表示的實體(類、介面、基本型別或 void)的直接超類的 Type。 ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass(); //返回表示此型別實際型別引數的 Type 物件的陣列(),想要獲取第二個泛型的Class,所以索引寫1 return (Class)type.getActualTypeArguments()[1];//<T> } }
上邊的程式碼中,我定義了三個泛型,現在我需要獲取第二個泛型的Class物件,就用到了getTClass方法,希望能夠幫到大家。