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; }
知识只有共享才能传播,才能推崇出新的知识,才能学到更多,这里写的每一篇文字/博客,基本都是从网上查询了一下资料然后记录下来,也有些是原滋原味搬了过来,也有时加了一些自己的想法