java相同字段赋值

实体类相同字段赋值

一般我们将一个实体类对象的值赋给另一个的时候,会使用get和set的方式,但字段比较多的时候,可以使用一个工具类

BeanUtils.copyProperties(a, b);

这里的作用是将对象a的相同字段赋给对象b。
这里注意两点:1.a赋给b ;2.a与b不一定要相同实体类,字段名相同即可。

这个方法会在编码的时候增加代码的简洁性和可读性。
注意导入包的时候是

import org.springframework.beans.BeanUtils;

而不是

package org.apache.commons.beanutils;

导入这个包似乎是将b赋给a,生产中我没有使用过。

实际原理应该是使用了反射的机制,所以使用的时候还是要注意效率的问题,远远达不到使用get/set的效率。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字段名不同的对象之间需要赋值时,你可以使用以下方法来实现: 1. 手动赋值: 首先,确保你的两个对象具有相同类型或者相同字段类型。然后,可以通过手动赋值的方式将源对象的属性值复制到目标对象。示例如下: ```java public class ObjectConverter { public static void convert(Object sourceObject, Object targetObject) { // 手动赋值 targetObject.setTargetField(sourceObject.getSourceField()); // 继续为其他不同字段手动赋值 } } ``` 在调用时,你可以传入源对象和目标对象进行赋值: ```java SourceObject sourceObject = new SourceObject(); // 设置源对象的属性值 TargetObject targetObject = new TargetObject(); ObjectConverter.convert(sourceObject, targetObject); ``` 2. 使用BeanUtils类或ModelMapper库: 如果你希望更加灵活和自动化地进行对象之间的属性赋值,可以使用BeanUtils类或ModelMapper库。这两个工具都提供了一些映射规则和自动转换功能来处理字段名不同的对象之间的赋值。示例如下: 使用BeanUtils类: ```java import org.springframework.beans.BeanUtils; public class ObjectConverter { public static void convert(Object sourceObject, Object targetObject) { BeanUtils.copyProperties(sourceObject, targetObject); } } ``` 使用ModelMapper库: ```java import org.modelmapper.ModelMapper; public class ObjectConverter { private static ModelMapper modelMapper = new ModelMapper(); public static void convert(Object sourceObject, Object targetObject) { modelMapper.map(sourceObject, targetObject); } } ``` 在调用时,你可以传入源对象和目标对象进行赋值: ```java SourceObject sourceObject = new SourceObject(); // 设置源对象的属性值 TargetObject targetObject = new TargetObject(); ObjectConverter.convert(sourceObject, targetObject); ``` 以上是几种常用的方法,可以根据你的需求选择其中一种来实现不同字段名对象之间的赋值。需要注意的是,如果字段名不同,但类型相同,可以直接使用上述方法。如果字段名和类型都不同,你可能需要手动进行转换或者使用其他映射工具来处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值