/**
* java反射机制:指的是在运行状态,对于任何一个类,都可以获取它的属性和行为特征(方法),对于任何一个对象
*
* 都可以调用他的属性和行为特征,这种动态获取和调用属性和行为特征就是java反射机制
*
* 以StudentBean为例:
* new StudentBean();,一创建该对象,jvm就会到本地磁盘找到当前对象的class字节码,将该字节码文件读入
* jvm,jvm自动给该对象创建一个class对象,这个class对象有且只有一个,jvm通过Class对象去获取当前对象的各种属性
*
* this.getClass().getGenericSuperclass()表示获取当前类带有泛型的直接父类,获取到BaseDao
* 返回一个java.lang.reflect.Type,将该类型转换成ParameterizedType,该类型用于获取泛型的参数类型
* pt.getActualTypeArguments()表示获取泛型的参数列表,pt.getActualTypeArguments()[0]
* 表示获取第一个泛型,可以将其转换成Class对象
*
*/
public BaseDaoImpl(){
ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();
this.clazz = (Class<T>)pt.getActualTypeArguments()[0];
}
* java反射机制:指的是在运行状态,对于任何一个类,都可以获取它的属性和行为特征(方法),对于任何一个对象
*
* 都可以调用他的属性和行为特征,这种动态获取和调用属性和行为特征就是java反射机制
*
* 以StudentBean为例:
* new StudentBean();,一创建该对象,jvm就会到本地磁盘找到当前对象的class字节码,将该字节码文件读入
* jvm,jvm自动给该对象创建一个class对象,这个class对象有且只有一个,jvm通过Class对象去获取当前对象的各种属性
*
* this.getClass().getGenericSuperclass()表示获取当前类带有泛型的直接父类,获取到BaseDao
* 返回一个java.lang.reflect.Type,将该类型转换成ParameterizedType,该类型用于获取泛型的参数类型
* pt.getActualTypeArguments()表示获取泛型的参数列表,pt.getActualTypeArguments()[0]
* 表示获取第一个泛型,可以将其转换成Class对象
*
*/
public BaseDaoImpl(){
ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();
this.clazz = (Class<T>)pt.getActualTypeArguments()[0];
}