• java-读取类中的属性名称和值


    方法

        /**
         * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类)
         * @param f:读取属性类(如果取父类的,则这里为父类)
         * @param o:取值类(如果取父类的,则这里为子类)
         * @return
         */
        public static Map<String, Object> readClassFileAllComponentsName(Object f,Object f2) {
            Map<String, Object> map = new HashMap<String, Object>();
            if (f == null)
                return map;
            Field[] fields = f.getClass().getDeclaredFields();
            for (int i = 0, len = fields.length; i < len; i++) {
                try {
                    // 对于每个属性,获取属性名
                    String varName = fields[i].getName();
                    // 获取原来的访问控制权限
                    boolean accessFlag = fields[i].isAccessible();
                    // 修改访问控制权限
                    fields[i].setAccessible(true);
                    // 获取在对象f中属性fields[i]对应的对象中的变量
                    Object o = fields[i].get(f2);
                    map.put(varName, o);
                    //System.out.println("传入的对象中包含一个如下的变量:" + varName + " = " + o);
                    // 恢复访问控制权限
                    fields[i].setAccessible(accessFlag);
                } catch (IllegalArgumentException ex) {
                    ex.printStackTrace();
                } catch (IllegalAccessException ex) {
                    ex.printStackTrace();
                }
            }
            return map;
        }
        
  • 相关阅读:
    第三个Sprint冲刺第三天
    回答第1-17章
    阅读第13-17章
    阅读第10、11、12章
    阅读第8,9,10章
    作业5.2 5.3
    四则运算 测试与封装 5.1
    阅读第5-7章
    阅读1-5章
    我给队友做的汉堡包
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/5121507.html
Copyright © 2020-2023  润新知