打印对象方便调试java

来源:互联网 发布:淘宝法院拍卖的房子 编辑:程序博客网 时间:2024/05/22 01:27
打印一个对象。
System.out.println("[testgetRvReturnDetailInfo3pl] result: "+ ReflectionToStringBuilder.toString(result));
 
递归打印对象:
import java.lang.reflect.Field;import java.lang.reflect.Modifier;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.List;public class ToStringBuilderRecursive {                                private static final List LEAVES = Arrays.asList(                Boolean.class, Character.class, Byte.class, Short.class,                Integer.class, Long.class, Float.class, Double.class, Void.class,                String.class,Date.class);        private static String delimitor = "\n";                public static String toStringRecursive(Object o){                            if (o == null)                return "null"+delimitor;                        if (LEAVES.contains(o.getClass()))                return o.toString()+delimitor;                        if(o.getClass().isArray()){                    Object[]  oa = (Object[]) o;                StringBuffer sb = new StringBuffer();                sb.append("[");                for(int i =0;i<oa.length;i++)                sb.append(toStringRecursive(oa[i]));                    sb.append("]"+delimitor);                return sb.toString();            }                        new ArrayList().getClass().getDeclaredFields();            StringBuilder sb = new StringBuilder();            sb.append(o.getClass().getSimpleName()).append(": [");            for (Field f : o.getClass().getDeclaredFields()) {                if (Modifier.isStatic(f.getModifiers()))                    continue;                f.setAccessible(true);                sb.append(f.getName()).append(": ");                try {                                sb.append(toStringRecursive(f.get(o))).append(" ");                        } catch (IllegalArgumentException e) {                                                          e.printStackTrace();                        } catch (IllegalAccessException e) {                                                            e.printStackTrace();                        }            }            sb.append("]"+delimitor);            return sb.toString();        }                public static void main(String[] agr){                A a = new A();                                String str = ToStringBuilderRecursive.toStringRecursive(a);                System.out.println(str);        }                        }class A{        List list = Arrays.asList("a","b","c","d");        Date date = new Date();        Long len = 111l;        String outerojb = "outerobj";}


参考:
https://my.oschina.net/chenzuoping/blog/82838
http://blog.csdn.net/stonehigher125/article/details/12885899
http://blog.csdn.net/u013725455/article/details/52033099