求大神言简意赅的解释下几行代码
private Class<?> entityClass;
Class c = this.getClass();
Type type = c.getGenericSuperclass();
ParameterizedType pType = (ParameterizedType)type;
Type[] params = pType.getActualTypeArguments();
entityClass = (Class)params[0];
今天学了反射。但是这几行代码都看不懂?API根本就不知道在说什么,描述的非常绕口,完全看不明白。然后跑去看英文版的。偶雅思好歹也是7.5的成绩,自认英文不差,但也根本看不明白API在说什么。
求大神们解答下啦。这几行到底要表达啥?还有到底什么是“参数化类型”啊?
求生动形象,言简意赅,叩谢!
------解决方案--------------------private Class<?> entityClass;//定义一个不知道啥类型的类型(我都觉得绕)
Class c = this.getClass();//获取对象自身的Class
Type type = c.getGenericSuperclass();//获取对象自身的泛型超类,其实就是对象的类定义时定义的泛型
ParameterizedType pType = (ParameterizedType)type;//转换
Type[] params = pType.getActualTypeArguments();//得到实际的类型参数
entityClass = (Class)params[0];
我感觉这个的意思是获取当前对象的类中,定义的泛型的类型。
我建议楼主可以找一个泛型类,生成一个对象,然后验证一下这些代码
------解决方案--------------------http://blog.csdn.net/duancanmeng/article/details/7464658
楼主可以参考下
------解决方案--------------------看英文猜测意思。
------解决方案--------------------------解决方案--------------------这段代码是想通过反射拿到泛型的实际类型,也就是传进去的类型。
如果想真正理解透,你可以去看看张孝祥老师的Java高新技术视频,官网有下。关于泛型的章节,有这个例子。
这样说,你也没法完全弄懂的。
主要是一个参数化类型,ParameterizedType
------解决方案--------------------其实楼主的重点是雅思7.5吧!