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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这基础视频里,在反射章节里,老师写了一个方法,方法如下,但是本方法无法输出多维数组的值,求代码修改
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
问题我解决了,不知道大家有没有更好的方法,我是采用,递归输出多维数组中的值,方法如下:

  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>
复制代码

评分

参与人数 1黑马币 +3 收起 理由
古银平 + 3 很给力!很不错

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马