日期:2014-05-20  浏览次数:20733 次

JDK1.5泛型的几个问题
项目急需,没有仔细深究,请各位帮忙了
一个函数申明
public   static   <T>   ArrayList <T>   parseObject(String   str)

问题1:
在函数体内部如何得到T的具体类型,例如取得T.class?
问题2:
调用这个函数使用ArrayList <String>   ret=parseObject(testString);
的时候什么时候作的cast操作?是在最后返回的时候?是否会出现castException?


------解决方案--------------------
ArrayList <String> ret=parseObject(testString);
parseObject的结果就应该是一个ArrayList <String> 类型,通俗的说就是一个ArrayList,其中每个元素都是String,当你ret.get的时候,出来的就是String,不用转换

可能理解也问题吧,要转我只能想到这样
ArrayList <String> ret=(ArrayList <String> )parseObject(testString);
------解决方案--------------------
看不出这个需求的必要性啊
T是返回类型,楼主在方法体内部进行处理有什么用吗?
------解决方案--------------------
楼主说详细些
------解决方案--------------------
据我所知,这种情况是不能创建一个实例的。
------解决方案--------------------
Class不是有一个getName() 吗?
Returns the name of the entity (class, interface, array class, primitive type, or void) represented by this Class object, as a String.

-----------------------
http://blog.xerik.cn (专注于Java技术)
------解决方案--------------------
同原来没有任何变化
范行的好处就是取消类型转换
但是对其他的Class方法的使用不会有影响
------解决方案--------------------
还没有用过1.5。
学习一下。。