A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 茶念小手 于 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类型的啊?

4 个回复

倒序浏览
求解释啊!!各位大神
回复 使用道具 举报
Object是最原始的类型,就是说系统默认是所有类的父类,可以把子类转换为父类,不可能把父类转换为子类,比如可以把猫类转换为其父类(动物类),但不可以把动物类转换为猫类。

我醉了,不要相信
回复 使用道具 举报
我觉着,Object是所有类的父类,也就是所有对象、所有参数都可以用Object来接收。向上转型可以,但是向下转型的话就有点说不清楚了,可能是Integer\或者是String。。。因为不确定子类,所以很难把Object向下转。
视频里有讲到:可以将猫 狗 猪 什么的 都看成是动物,但是不能说动物是猫。。。
回复 使用道具 举报
Object是所有类的父类,而T类型可能是Object类,也可能是Object的子类,子类引用指向父类对象就有可能损失精度,所以会报错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马