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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 石德志 于 2012-2-25 10:04 编辑

关于张孝祥老师Java高新技术中数组反射,经测试张老师的代码只能打印出一维数组Object和非数组Object的内容,请教打出任意维数数组的代码
  1. import java.lang.reflect.Array;
  2. import java.util.Arrays;
  3. public class PrintArrayDemo {

  4.         public static void main(String[] args) {
  5.                 int [] a1 = new int[]{1,2,3};

  6.                 int [][] a2 = new int[][]{{1,2,3},{4,5}};
  7.                 String [] a3 = new String[]{"a","b","c"};
  8.                
  9.                
  10.                 System.out.println(a1);
  11.                 System.out.println(a2);
  12.                 System.out.println(a3);
  13.                 /*打印结果为:
  14.                   [I@192d342
  15.                   [[I@6b97fd
  16.                   [Ljava.lang.String;@1c78e57*/
  17.                 System.out.println(Arrays.asList(a1));
  18.         System.out.println(Arrays.asList(a2));
  19.                 System.out.println(Arrays.asList(a3));
  20.                 /*打印结果为:
  21.                   [[I@192d342]
  22.           [[I@1e63e3d, [I@1004901]
  23.           [a, b, c]*/
  24.                 printObject(a1);
  25.                 printObject(a2);/* 打印结果为:[I@1e63e3d
  26.                                      [I@1004901*/
  27.                 printObject(a3);
  28.                 /*
  29. 打印结果为:1
  30.           2
  31.           3
  32.           [I@1e63e3d
  33.           [I@1004901
  34.           a
  35.           b
  36.           c*/
  37.                
  38.         }
  39. public  static void printObject(Object obj){
  40.         Class cls=obj.getClass();
  41.         if(cls.isArray()){
  42.         int len =Array.getLength(obj);
  43.         for(int i=0;i<len;i++){
  44.                 System.out.println(Array.get(obj, i));
  45.         }
  46.         }else{
  47.                 System.out.println(obj);
  48.         }
  49.        
  50. }

  51. }
复制代码
printObject(a2);/* 打印结果为:[I@1e63e3d
                                     [I@1004901*/
打印不出二维数组的内容,如果是不知道维数的数组呢?怎么设计算法?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马