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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗杰 中级黑马   /  2012-3-29 13:44  /  1787 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

24课,张老师讲Object与数组关系的时候
int[] a1 = new int[3];
String[] a4 = new String[4];

Object obj1 = a1;
Object obj2 = a4;       
这两个都没问题,因为他们的父类都是Object

Object[] objs1 = a1;        //会出错,因为int基本数据类型不能转换成Object
Object[] objs2 = a4;        //没有问题,因为Object也是String的父类

由于多态性,既然a4既可以是Object[],又可以是Object
那么为什么Arrays.asList(a4)
匹配的是Arrays.asList(Object[] a)
而不是Arrays.asList(Object a)呢?

3 个回复

倒序浏览
本帖最后由 朱俊 于 2012-5-16 15:01 编辑
  1. ~~~~~~~~~~~~~~~~~
复制代码
回复 使用道具 举报
因为a4是个数组,所以对应object[] a
回复 使用道具 举报
Arrays.asList(Object[] a)
   是要把数组转成集合  如果参数是Object的话 就是一个对象  把一个对象转成集合后集合里面只有一个元素  转它也没什么意义
   数组时多个元素的 集合也是多个元素的  传参的话肯定得传数组啊  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马