[TOC]
@auther by sizaif
说明
在实际项目开发中使用PageHelper插件拿到的数据封装在 PageInfo中,而某些操作需要拿到里面的值和设置一些值,由于Object的缘故,无法直接get和set,所有使用java反射来get和set
for (Object contestVO : pageInfo.getList()) {
.....XXXXX.....
}
拿属性的值
/**
* 根据属性名获取属性值
*
* @param 要拿取的属性的名称
* @param 实体类
* @return
*/
private static String getFieldValueByFieldName(String fieldName, Object object) {
try {
Field field = object.getClass().getDeclaredField(fieldName);
//设置对象的访问权限,保证对private的属性的访问
field.setAccessible(true);
return (String)field.get(object);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
设置
/**
* 根据属性名设置属性值
*
* @param 要设置的属性名称
* @param 实体类
* @param 对于要设置的属性类型
* @return
*/
private static void setFieldValueByFieldName(String fieldName, Object object, 对于要设置的属性类型 value) {
try {
// 获取obj类的字节文件对象
Class aClass = object.getClass();
// 获取该类的成员变量
Field field = aClass.getDeclaredField(fieldName);
// 取消语言访问检查
field.setAccessible(true);
// 给变量赋值
field.set(object, value);
} catch (Exception e) {
e.printStackTrace();
}
}