拼接set/get方法,并给对象进行赋值

拼接set,get方法,并利用反射调用,完成两个对象的赋值

在维护的一个项目中,有两个实体,包含大量命名相似的属性。需求里面需要将一个实体的属性值赋值到另外一个实体里面进行保存。由于所要赋值字段名称又不完全一样,所以不能用BeanUtils.copyProperties(); 自己又不想一个一个set进去,最后根据字段的命名规律,然后利用反射解决了问题。

  1. 实体属性
    实体A
    在这里插入图片描述
    实体B
    在这里插入图片描述
  2. 要把B的 MP1-MP63 的值赋给A的 MP1-MP63,利用属性命名规律,拼接set,get方法,再利用反射解决,偷懒。。
           Class<? extends A> aClass= A.getClass();
           Class<? extends B> bClass= B.getClass();
               /* 给A MP1~MP32_ 数据赋值 */
               String setter; // A set方法
               String getter; // B get方法
               String value; // set 值
               int length = 0; // 测点字段数量

               // 是测点字段 数量增加
               for (Field declaredField : aClass.getDeclaredFields()) {
                   if (declaredField.getName().contains("postionGp")) length++;
               }

               for (int i = 0; i < length; i++) {
                   // 取值
                   getter = "getOp60PostionGp" + i;//get方法
                   value = (String) bClass.getMethod(getter).invoke(B);//B实体对象
                   // 赋值
                   setter = "setPostionGp" + i;
                   Method curMethod60 = aClass.getMethod(setter, String.class); // 获取set方法
                   curMethod60.invoke(A, value);//A实体对象、value:set的参数值
               }
               AMapper.insertA(A);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值