黑马程序员技术交流社区

标题: 写一个通用方法输出任一数组(维数不定)和单个对象的值 [打印本页]

作者: 付维翔    时间: 2012-10-25 09:21
标题: 写一个通用方法输出任一数组(维数不定)和单个对象的值
这基础视频里,在反射章节里,老师写了一个方法,方法如下,但是本方法无法输出多维数组的值,求代码修改
  1. /**
  2. * 打印指定对象的数据,本方法只能打印出一维组中的值和单个值的对象,无法输出多维数组中的具体的值
  3. *
  4. * @param obj
  5. */
  6. private static void printObject(Object obj) {
  7. Class clazz = obj.getClass();
  8. if (clazz.isArray()) {
  9. int len = Array.getLength(obj);
  10. for (int i = 0; i < len; i++) {
  11. System.out.println(Array.get(obj, i));
  12. }
  13. } else {
  14. System.out.println(obj);
  15. }

  16. }
复制代码

作者: 付维翔    时间: 2012-10-25 09:43
问题我解决了,不知道大家有没有更好的方法,我是采用,递归输出多维数组中的值,方法如下:

  1. <P>/**
  2.   * 本方法为上述方法的改进,可以输出多维组中的值,采用递归方法,
  3.   *
  4.   * @param obj
  5.   */
  6. private static void printObjectAdance(Object obj) {
  7.   Class clazz = obj.getClass();
  8.   ////Determines if this Class object represents an array class.
  9.   if (clazz.isArray()) {
  10.    int len = Array.getLength(obj);
  11.   for (int i = 0; i < len; i++) {
  12.     // 递归调用
  13.     printObjectAdance(Array.get(obj, i));
  14.    }
  15.   } else {
  16.    System.out.println(obj);
  17.   }</P>
  18. <P> }</P>
复制代码





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