printin

package com.ch;


import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;



/**
 * 根据反射取对象的值
 *
 * @author zhangqiulong
 *
 */
public class Debug {
    private static void println(Object object) {
        StringBuffer str = new StringBuffer();
        if (object != null) {
            try {
                Class clazz = object.getClass();
                str.append(clazz.getName()+":");
                if(clazz == String.class|| clazz == int.class|| clazz == double.class|| clazz == float.class||clazz==char.class
                        || clazz == boolean.class|| clazz == short.class|| clazz == long.class|| clazz == Integer.class
                        || clazz == Double.class|| clazz == Float.class|| clazz == Boolean.class|| clazz == Short.class
                        || clazz == Long.class||clazz==Character.class)
                {
                    str.append("  ").append(object);
                }
                else if(object instanceof Collection)
                {
                    str.append("[size=").append(((Collection)object).size()+"]");
                }
                else
                {   
                Method[] metds=clazz.getMethods();
                Field[] fds = clazz.getDeclaredFields();
               
                for (Field field : fds) {
                    field.setAccessible(true);
                    boolean b=false;
                    for (Method method : metds) {
                        if(method.getName().equals("get" + change(field.getName()))){
                            b=true;
                            break;
                        }
                    }
                   
                    if(!b){continue;}
                   
                    Method metd = clazz.getMethod("get" + change(field.getName()), null);
                    Object ret = metd.invoke(object, null);
                    str.append("  ").append(field.getName()).append("=").append(ret);
                }
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
        System.out.println(str.toString());
    }

    /**
     * @param src
     *            源字符串
     * @return 字符串,将属性的第一个字母转换为大写,属性为空时返回null
     */
    public static String change(String src) {
        if (src != null) {
            StringBuffer sb = new StringBuffer(src);
            sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
            return sb.toString();
        } else {
            return null;
        }
    }

   

}

你可能感兴趣的:(java)