当前位置:编程学习 > JAVA >>

求大神言简意赅的解释下几行代码

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吧!
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,