需求
有两个类,他们属性数据类型相同,但名字不同,如何数据的拷贝?
举例:
我们在Service层可能用到的是 UserDTO 类,而页面需要的是 UserVO,我们需要将这个 UserDTO 变成 UserVO 怎么做?
笨方法:
先 UserVO vo = new UserVo(),然后调用 vo.setXXX(dto.getXXX()) 挨个往属性中赋值。
这种方法在 属性少的情况下或许还没什么问题。但是如果需要拷贝对象的属性非常多,且有的属性是集合类型的,这种笨方法处理起来就非常的麻烦了
实验案例
定义2个类
UserDTO 类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserDTO {
private String userName;
private Integer userAge;
private Integer weight;
}
UserVO类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserVO {
private String name;
private Integer age;
private Integer weight;
}
定义一个函数式接口
@FunctionalInterface
public interface BeanUtilCopyCallBack<S, T> {
/**
* 定义默认回调方法
* @param t
* @param s
*/

本文探讨了在Java中如何高效地进行JavaBean属性拷贝,特别是在属性数量多或包含集合类型时,避免使用手动一一赋值的笨方法。通过实验案例,包括定义两个属性类型相同的类、创建函数式接口、实现属性拷贝工具类,以及编写测试用例,展示了更优的解决方案。
最低0.47元/天 解锁文章
412

被折叠的 条评论
为什么被折叠?



