黑马程序员技术交流社区

标题: 数组问题 [打印本页]

作者: 戚题彪    时间: 2012-8-12 17:20
标题: 数组问题
这是一个自定义的打印的方法。其中有点小迷惑,求解。
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);
                }
        }

作者: 来明坤    时间: 2012-8-12 17:41
if语句判断的是数组格式  System.out.println(obj);输出是对象。。。
作者: 吴小东    时间: 2012-8-12 17:48
应该不会报错的,能说下报的什么错吗?
作者: 杜鹏云    时间: 2012-8-12 18:18
int a[] = new int[]{1,2,3,4,5,6};
printObject(a);
你好,我帮你运行了下,输出的是a的[I@1e5e2c3。。。
其实这个地方本身也是不会报错的。
你所说的编译不通过,真的很难理解,能够把错误代码写出来么?




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