printin

编程技术  /  houtizong 发布于 3年前   96

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;
        }
    }

   

}

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客