黑马程序员技术交流社区

标题: 老夫关于泛型有个地方不解!!所以求助于各位兄台 [打印本页]

作者: 茶念小手    时间: 2013-8-11 23:03
标题: 老夫关于泛型有个地方不解!!所以求助于各位兄台
本帖最后由 茶念小手 于 2013-8-13 00:13 编辑
  1. public static  <T> void test(T a,T obj){
  2.                 Object object = obj;
  3.                    a =object;
  4.         }
复制代码
a =object;这里报错了 ,,,
为什么一个T类型的参数可以转成Object类型的
而Object类型的转不成T类型的啊?
作者: 茶念小手    时间: 2013-8-12 01:34
求解释啊!!各位大神
作者: 吴光新    时间: 2013-8-12 02:22
Object是最原始的类型,就是说系统默认是所有类的父类,可以把子类转换为父类,不可能把父类转换为子类,比如可以把猫类转换为其父类(动物类),但不可以把动物类转换为猫类。

我醉了,不要相信
作者: 清心玉质    时间: 2013-8-12 10:14
我觉着,Object是所有类的父类,也就是所有对象、所有参数都可以用Object来接收。向上转型可以,但是向下转型的话就有点说不清楚了,可能是Integer\或者是String。。。因为不确定子类,所以很难把Object向下转。
视频里有讲到:可以将猫 狗 猪 什么的 都看成是动物,但是不能说动物是猫。。。
作者: masterV    时间: 2013-8-12 11:01
Object是所有类的父类,而T类型可能是Object类,也可能是Object的子类,子类引用指向父类对象就有可能损失精度,所以会报错。




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