黑马程序员技术交流社区

标题: 定义在泛型方法上的一个问题 [打印本页]

作者: BitmapFactory    时间: 2013-3-2 20:24
标题: 定义在泛型方法上的一个问题
本帖最后由 张学林 于 2013-3-4 06:46 编辑

看张老师的视频下面代码中什么时候将String传给T的呢
  1.                 Object obj = "abc";
  2.                 String x3 = autoConvert(obj);
  3.         private static <T> T autoConvert(Object obj){
  4.                 return (T)obj;
  5.         }
复制代码
似乎没有用到T啊

还有,是不是强制转换也是这样的做的呢,就和做个标签似是,JVM认识这个强转的标签(我怀疑是这样的)
大家帮忙分析一下啊
作者: 陈圳    时间: 2013-3-2 21:15
private static <T> T autoConvert(Object obj){
                return (T)obj;
用到了,这个T代表函数返回值类型还有,强转类型,把autoConvert(obj)这个值赋给String,就说明T用String代替了.
相当于:
private static String autoConvert(Object obj){
               return (String)obj;
作者: BitmapFactory    时间: 2013-3-3 07:00
在调用的时候也没有在函数上声明String啊,JVM怎么识别String,并把String传给T的呢?
作者: 李培根    时间: 2013-3-3 07:15
张学林 发表于 2013-3-3 07:00
在调用的时候也没有在函数上声明String啊,JVM怎么识别String,并把String传给T的呢? ...

这个作用累死强制类型转换,用什么类型接收T就代表什么类型
作者: 何伟    时间: 2013-3-3 12:01
T就像斗地主里的癞子,这下懂了?
作者: 孙晋学    时间: 2013-3-3 22:36
泛型在方法上应用时,张老师总结了很多。这中情况算简单的,由返回值确定泛型的实际参数类型
String x3 = autoConvert(obj);返回值用String接受,方法定义的时候返回值是T,这里就指定了T的实际参数是String类型了
作者: 黑马潘浩    时间: 2013-3-4 01:00
何伟 发表于 2013-3-3 12:01
T就像斗地主里的癞子,这下懂了?

这比喻厉害。。。哈哈
作者: BitmapFactory    时间: 2013-3-4 06:46
何伟 发表于 2013-3-3 12:01
T就像斗地主里的癞子,这下懂了?

我也觉得这个说法比较容易理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2