1. 程式人生 > >類似PHP中的var_dump,Java中的輸出除錯函式

類似PHP中的var_dump,Java中的輸出除錯函式

public void helpFunc(Object o) {
        String className = o.getClass().getName();
        Field[] fields = o.getClass().getDeclaredFields();
        System.out.println("類" + className + "中宣告的field屬性");
        for (int i = 0; i < fields.length; ++i) {
            fields[i].setAccessible(true);
            try {
                System.out
.println(fields[i].getName() + "-" + fields[i].toString() + "-" + fields[i].get(o)); } catch (Exception e) { System.out.println(e); } } Class[] classes = o.getClass().getDeclaredClasses(); System.out.println("類" + className + "中宣告的類");
for (int i = 0; i < classes.length; ++i) { try { System.out.println(classes[i].getName() + "-" + classes[i].toString()); } catch (Exception e) { System.out.println(e); } } Method[] methods = o.getClass().getDeclaredMethods
(); System.out.println("類" + className + "中宣告的方法"); for (int i=0; i < methods.length; ++i) { try { System.out.println(methods[i].getName() + "-" + methods[i].toString()); } catch (Exception e) { System.out.println(e); } } }

2017年3月30日17:22:54更新

/**
     * 通過按位與運算,計算需要列印的選項
     * 0或1 列印類的屬性
     * 0或2 列印類中宣告的類
     * 0或4 列印類的方法
     * 例如3表示 列印類的屬性和類中宣告的類
     * @param o    需要列印的物件
     * @param sum  需要列印的和值
     */
    public static void helpFunc(Object o, int sum) {
        String className = o.getClass().getName();
        if ((sum & 1) == 1) {
            Field[] fields = o.getClass().getDeclaredFields();
            System.out.println("類" + className + "中宣告的field屬性");
            for (int i = 0; i < fields.length; ++i) {
                fields[i].setAccessible(true);
                try {
                    System.out.println(fields[i].getName() + "-" + fields[i].toString() + "-" + fields[i].get(o));
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
        }

        if ((sum & 2) == 2) {
            Class[] classes = o.getClass().getDeclaredClasses();
            System.out.println("類" + className + "中宣告的類");
            for (int i = 0; i < classes.length; ++i) {
                try {
                    System.out.println(classes[i].getName() + "-" + classes[i].toString());
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
        }

        if ((sum & 4) == 4) {
            Method[] methods = o.getClass().getDeclaredMethods();
            System.out.println("類" + className + "中宣告的方法");
            for (int i = 0; i < methods.length; ++i) {
                try {
                    System.out.println(methods[i].getName() + "-" + methods[i].toString());
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
        }
    }