泛型子類獲取父類的模板型別方法
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;
abstract class BaseDao <T>{
public void getType(){
//獲取父類型別
Type t = getClass().getGenericSuperclass();
//強制轉換為泛型型別
ParameterizedType p = (ParameterizedType) t ;
//獲取泛型中型別變數
System.out.println(p.getActualTypeArguments()[0]);
System.out.println(p.getOwnerType());
//獲取申明的原始型別,即擦除後的型別
System.out.println(p.getRawType());
}
}
public class SubDao extends BaseDao<String> {
@Test
public void test1(){
getType();
}
}