抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

[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();
    }
}

评论吧



本站总访问量为 访客数为

鲁 ICP 备 20018157 号-1
Copyright 2021 - 2022 sizaif. All Rights Reserved