原文:https://blog.csdn.net/weixin_38756990/article/details/72871920
public class Parent<T> {
// 用於接收傳遞的clazz
private Class clazz;
// 獲取子類傳遞給他的具體泛型類型
public Parent() {
// 1獲取子類的class(在創建子類對象的時候,會返回父類的構造方法)
Class<? extends Parent> clazz = this.getClass(); // Student
// 2獲取當前類的帶有泛型的父類類型
ParameterizedType type = (ParameterizedType) clazz.getGenericSuperclass();
// 3返回實際參數類型(泛型可以寫多個)
Type[] types = type.getActualTypeArguments();
// 4 獲取第一個參數(泛型的具體類) Person.class
this.clazz = (Class) types[0];//原文鏈接中的一處錯誤是沒有添加 "this"
}
}