zoukankan      html  css  js  c++  java
  • 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;
        }
        
  • 相关阅读:
    好题记录
    「同余数论」学习笔记
    「网络流」学习笔记
    物理知识相关内容总结
    「多项式」学习笔记
    「数论函数」学习笔记
    「点分治」学习笔记
    「线性基」学习笔记
    「后缀自动机」学习笔记
    「后缀数组」学习笔记
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/5121507.html
Copyright © 2011-2022 走看看