获取一个实例化对象的所有属性和值存入Map中
/**
* @Description: 获取一个实例化对象的所有属性和值
* @Author: Amethyst
* @Params: [obj]
* @return: java.util.Map
* @Date: 2019/10/16 10:41
* @Update by:
*/
public Map<String, Object> getAllPropertiesAndValue(Object obj){
Map<String,Object> propertiesMap=new HashMap<>();
Field[] fields = obj.getClass().getDeclaredFields();
for(int i = 0 , len = fields.length; i < len; i++) {
// 对于每个属性,获取属性名
String varName = fields[i].getName();
try {
// 获取原来的访问控制权限
boolean accessFlag = fields[i].isAccessible();
// 修改访问控制权限
fields[i].setAccessible(true);
// 获取在对象f中属性fields[i]对应的对象中的变量
Object o;
try {
o = fields[i].get(obj);
propertiesMap.put(varName,o);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 恢复访问控制权限
fields[i].setAccessible(accessFlag);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
}
}
return propertiesMap;
}
该方法目前只针对单独的class类型,如果是集合类型可以尝试递归存储,我还没尝试