打印对象的通用方法

来源:互联网 发布:双色球组合数据大全 编辑:程序博客网 时间:2024/05/22 00:16

import java.lang.reflect.Array;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

import java.util.List;

/**

该实例提供了一种通用的打印对象的方式

通过privatestaticvoidprint(Objectobj),屏蔽所有的对象类型

该实例只提供了一种解决方案,主考虑到原始类型,对象类型,数组类型和集合类型(Collection)

通过该实例可以做以下扩展:1.在输出格式上做修改

                                                                       2.可以扩展Map等类型的输出方式

 */

publicclass ReflectTest {

                  publicstaticvoid main(String... args)throws Exception{

                                     //test:原始类型

                                     int i = 5;

                                     print(i);

                                     //test:数组类型

                                     int[] iArr =newint[3];

                                     print(iArr);

                                     //test:对象类型

                                     String str = "aaabbbccc";

                                     print(str);

                                     //test:多维数组类型

                                     int[][] iArray =newint[2][3];

                                     print(iArray);

                                     //test:简单的集合类型

                                     List<String> list1 = new ArrayList<String>();

                                     list1.add("list1A");

                                     list1.add("list1B");

                                     list1.add("list1C");

                                     print(list1);

                                     List<String> list2 = new ArrayList<String>();

                                     list2.add("list2A");

                                     list2.add("list2B");

                                     list2.add("list2C");

                                     print(list2);

                                     //test:集合中嵌套集合的类型

                                     List<List<String>> list = new ArrayList<List<String>>();

                                     list.add(list1);

                                     list.add(list2);

                                     print(list);

                                     List<int[]> list12 =new ArrayList<int[]>();

                                     //test:集合中嵌套数组的类型

                                     list12.add(iArr);

                                     list12.add(iArr);

                                     print(list12);

                  }

                  //打印对象,每一个对象单行显示

                  privatestaticvoid print(Object obj){

                                     printObject(obj);

                                     System.out.println();

                  }

                  //打印对象,主要分类为:原始类型,对象类型,数组类型,集合类型

                  privatestaticvoid printObject(Object obj){

                                     Class clazz = obj.getClass();

/*                                if(obj instanceof Collection){

                                                       Collection c = (Collection)obj;

                                                       printCollection(c);

                                     }else */if(clazz.isArray()){

                                                       int len = Array.getLength(obj);

                                                       for(int i = 0; i<len; i++){

                                                                          printObject(Array.get(obj,i));

                                                       }

                                     }else{

                                                       System.out.print(obj);

                                                       System.out.print("   ");

                                     }

                  }

                  //集合类型

/*             private static void printCollection(Collection c){

                                     System.out.print("[");

                                     Iterator it = c.iterator();

                                     while(it.hasNext()){

                                                       Object o = it.next();

                                                       printObject(o);

                                     }

                                     System.out.print("]");

                  }*/

}

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苦胆水吐出来了怎么办 喝多了吐胆汁怎么办 吐出黄水苦水是怎么办 喝酒喝的一直吐怎么办 孕期总胆汁酸高怎么办 孕早期胆汁酸高怎么办 孕妇总胆汁酸高怎么办 宝宝一天吐了6次怎么办 肛周脓肿破了怎么办 肛周脓肿发烧了怎么办 肛周脓肿便血该怎么办 婴儿得肛周脓肿怎么办 水痘长在龟头上怎么办 轻度萎缩性胃炎伴肠化怎么办 肺癌晚期腿肿了怎么办 胸骨剑突按压痛怎么办 22岁有白头发怎么办 血热导致掉头发怎么办 36岁脱发严重该怎么办 血热引起的脱发怎么办 头发掉的好厉害怎么办 胃热导致的口臭怎么办 肝火和胃火旺盛怎么办 2月宝宝舌苔厚白怎么办 小孩舌头咬破了怎么办 两岁宝宝不说话怎么办 4岁半说话不清楚怎么办 10小孩说话不清怎么办 2岁宝宝说话结巴怎么办 4岁宝宝说话结巴怎么办 3岁幼儿说话结巴怎么办 三岁宝宝说话结巴怎么办 6岁宝宝说话结巴怎么办 经前下巴长痘怎么办 胃火导致的口臭怎么办 脸上有热毒痘痘怎么办 被丙肝患者针扎怎么办 大脑供血不足该怎么办 钛钉长在肉里了怎么办 鼻背筋膜松了怎么办 脑子里长了囊肿怎么办