打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java反射设置属性值和赋值,简单实用
  • package com.shentb.hmb.utils;
  • import java.lang.reflect.Field;
  • import java.lang.reflect.Method;
  • public class ReflexUtils {
  • /**
  • * 反射根据属性名获取属性值
  • *
  • * @param fieldName 属性名
  • * @param object 实体类对象
  • * @return
  • */
  • public static Object getFieldValueByFieldName(String fieldName, Object object) {
  • try {
  • Field field = object.getClass().getDeclaredField(fieldName);
  • //设置对象的访问权限,保证对private的属性的访问
  • field.setAccessible(true);
  • return field.get(object);
  • } catch (Exception e) {
  • e.printStackTrace();
  • return null;
  • }
  • }
  • /**
  • * 通过反射设置属性的值
  • * @param fieldName 属性名
  • * @param fieldValue 属性值
  • * @param object 实体类对象
  • * @param parameterTypes 设置属性值的类型
  • * @throws
  • */
  • public static void setFieldValueByFieldName(String fieldName,Object fieldValue,Object object,Class<?>... parameterTypes) {
  • try {
  • Field[] fields = object.getClass().getDeclaredFields();
  • for(int i=0;i<fields.length;i++){
  • Field field = fields[i];
  • //字段名称
  • String name = field.getName();
  • if(name.equals(fieldName)){
  • field.setAccessible(true);
  • //field.set(object,fieldValue) 可代替下面的拼接set方法;
  • //将属性的首字符大写,方便构造get,set方法
  • String methname = name.substring(0,1).toUpperCase()+name.substring(1);
  • Method m = object.getClass().getMethod("set" + methname,parameterTypes);
  • m.invoke(object,fieldValue);
  • }
  • }
  • }catch (Exception e){
  • e.printStackTrace();
  • }
  • }
  • }
  • 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
    打开APP,阅读全文并永久保存 查看更多类似文章
    猜你喜欢
    类似文章
    反射的应用 将form表单的数据自动封装为对象
    Java反射机制获取父类属性
    xml转换为java对象
    学习:java原理
    org.springside.modules.utils.ReflectionUtils
    Java 反射工具类
    更多类似文章 >>
    生活服务
    热点新闻
    分享 收藏 导长图 关注 下载文章
    绑定账号成功
    后续可登录账号畅享VIP特权!
    如果VIP功能使用有故障,
    可点击这里联系客服!

    联系客服