java反射 四、 Java 获取成员变量构造函数信息

4-1 Java 获取成员变量构造函数信息

    /**
     * 获取成员变量的信息
     * 
     * @param obj
     */
    public static void printFieldMessage(Object obj) {
        Class c = obj.getClass();
        /*
         * 成员变量也是对象 java.lang.reflect.Field Field类封装了关于成员变量的操作
         * getField()方法获取的是所有public的成员变量的信息 getDeclaredFields()方法获取的是该类自己声明的成员变量的信息
         */
        // Field[] fs = c.getFields();
        Field[] fs = c.getDeclaredFields();
        for (Field field : fs) {
            // 得到成员变量的类型的类类型
            Class fieldType = field.getType();
            String typeName = fieldType.getName();
            // 得到成员变量的名称
            String fieldName = field.getName();
            System.out.println(typeName + " " + fieldName);
        }
    }

    /**
     * 打印对象的构造函数的信息
     * 
     * @param obj
     */
    public static void printConMessage(Object obj) {
        Class c = obj.getClass();
        // 构造函数也是对象 java.lang.Constructor中封装了构造函数的信息
        // Constructor[] cs = c.getConstructors(); // getConstructors()获取所有的public的构造方法
        Constructor[] cs = c.getDeclaredConstructors();
        for (Constructor constructor : cs) {
            System.out.print(constructor.getName() + "(");
            // 获取构造函数的参数列表 ---> 得到的是参数列表的类类型
            Class[] paramTypes = constructor.getParameterTypes();
            for (Class class1 : paramTypes) {
                System.out.print(class1.getName() + ",");
            }
            System.out.println(")");
        }
    }

Class类还有更多的方法,详情参阅帮助文档

但是首先要获得该类的类类型

猜你喜欢

转载自blog.csdn.net/qq_40638497/article/details/81215280
今日推荐