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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何清林 中级黑马   /  2014-3-5 20:53  /  832 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//?为何这里不能直接用obj[i] ?请看下面的程序
        //数组反射的应用,用于写一个可以打印任意元素的函数
        public static void printObject(Object obj) {
                // TODO Auto-generated method stub
                Class clazz = obj.getClass();
                if(clazz.isArray()){  //clazz.isArray()判断是不是数组类型的对象
                        for(int i=0;i<Array.getLength(obj);i++){
                                System.out.println(Array.get(obj, i));   //?为何这里不能直接用obj[i] ?
                        }
                }else{
                System.out.println(obj);       
                }
        }

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

正序浏览
类java.lang.reflect中的get方法:
static Object get(Object array, int index)
第一个参数是数组名
第二个参数是索引

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
楼上说的对:你判断出是一个数组了,但编译器只知道它是一个Object对象
回复 使用道具 举报
public static void printObject(Object obj) {  }  这里的obj是Object类型  不是数组类型 ,所以不能用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马