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;
        }
        
  • 相关阅读:
    GCD之各种派发
    Effective Objective-C 笔记之熟悉OC
    正则表达式之正向预查和负向预查
    vue的实例属性$refs
    vue的实例属性$options
    vue的实例属性$data
    vue的实例属性$el
    vue强制更新$forceUpdate()
    vue的extends的使用
    vue的mixins的使用
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/5121507.html
Copyright © 2011-2022 走看看