/** * 用於接收傳遞的clazz */ private Class<T> clazz; // 獲取子類傳遞給他的具體泛型類型 public BaseDaoImpl() { // 1獲取子類的class(在建立子類對象的時候,會返回父類的構造方法) Class<? extends BaseDaoImpl> clazz = this.getClass(); // Student // 2獲取當前類的帶有泛型的父類類型 ParameterizedType type = (ParameterizedType) clazz.getGenericSuperclass(); // 3返回實際參數類型(泛型能夠寫多個) Type[] types = type.getActualTypeArguments(); // 4 獲取第一個參數(泛型的具體類) clazz = (Class) types[0]; }