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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 戚题彪 初级黑马   /  2012-8-12 17:20  /  1480 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是一个自定义的打印的方法。其中有点小迷惑,求解。
private static void printObject(Object obj) {
                // TODO Auto-generated method stub
                Class clazz = obj.getClass();
                /*if(clazz.isArray()){
                        int len = Array.getLength(obj);
                        for(int i = 0;i<len;i++){
                                if(Array.get(obj, i).getClass().isArray()){
                                        for(int j=0;j<Array.getLength(Array.get(obj, i));j++){
                                                System.out.println(Array.get(Array.get(obj, i),j));
                                        }
                                }else{
                                        System.out.println(Array.get(obj, i));
                                }
                               
                        }
                }else {
                        System.out.println(obj);
                }*/
               
                if(clazz.isArray()){
                        int len = Array.getLength(obj);
                        for(int i = 0;i<len;i++){
                                //System.out.println(obj);//此处编译时会报错,和Array.get(obj,i)有什么区别?为什么会报错
                                System.out.println(Array.get(obj,i));
                        }
                }else{
                        System.out.println(obj);
                }
        }

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1 鼓励一下!继续加油!

查看全部评分

3 个回复

正序浏览
int a[] = new int[]{1,2,3,4,5,6};
printObject(a);
你好,我帮你运行了下,输出的是a的[I@1e5e2c3。。。
其实这个地方本身也是不会报错的。
你所说的编译不通过,真的很难理解,能够把错误代码写出来么?
回复 使用道具 举报
应该不会报错的,能说下报的什么错吗?
回复 使用道具 举报
if语句判断的是数组格式  System.out.println(obj);输出是对象。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马