hutool工具类BeanUtil及其方法
文档地址 https://plus.hutool.cn/apidocs/
Class BeanUtil
public class BeanUtil
extends Object
Bean工具类
把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。
copyProperties 方法
public static
Class
String... ignoreProperties)
按照Bean对象属性创建对应的Class对象,并忽略某些属性
Type Parameters:
T - 对象类型
Parameters:
- source - 源Bean对象
- tClass - 目标Class
- ignoreProperties - 不拷贝的的属性列表
Returns:
目标对象
示例代码
UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class);
这行代码的作用是将 user 对象的属性值复制到一个新的 UserDTO 对象中:
这里使用的是 Hutool 工具库中的 BeanUtil.copyProperties 方法。
🧩 逐部分解析
-
BeanUtil.copyProperties(user, UserDTO.class)这是 Hutool 提供的一个静态方法,用于将源对象user的属性值复制到目标类UserDTO的新实例中 -
UserDTO userDTO = ...将复制后的UserDTO实例赋值给变量userDTO,以便后续使用
✅ 使用场景
这种属性复制的方式在实际开发中非常常见,尤其是在以下场景中
-
数据传输对象(DTO)转换 在服务层与控制层之间传递数据时,通常会使用 DTO 来封装数据,避免直接暴露实体类
-
简化代码 避免手动编写大量的
get/set方法,提高代码的可读性和可维护性 -
数据脱敏或过滤 在将数据返回给前端时,可以通过 DTO 来控制返回的字段,避免敏感信息泄露
⚠️ 注意事项
-
属性名和类型需一致
BeanUtil.copyProperties方法会将源对象中与目标类中属性名和类型都一致的属性进行复制。如果属性名或类型不一致,该属性将不会被复制 -
浅拷贝 该方法进行的是浅拷贝,即对于引用类型的属性,复制的是引用而不是对象本身。如果需要深拷贝,需要使用其他方法
-
性能考虑 虽然
BeanUtil.copyProperties使用了反射机制,性能相较于手动赋值略低,但在大多数应用场景下,这种性能差异是可以接受的

浙公网安备 33010602011771号