BeanUtils.copyProperties()方法记录

我们如果有两个具有很多相同属性的JavaBean

一个oldBean,一个newBean

现在需要将newBean里面相同属性的值赋给oldBean

老办法是:

oldBean.setName(newBean.getName);

这样一个属性一个属性的赋值,代码量大,很繁琐。

那么可以通过BeanUtils提供的copyProperties()方法实现。

OldUser

@Data
@NoArgsConstructor
@AllArgsConstructor
public class OldUser {
    private String name;
    private Integer age;
}

NewUser

@Data
@NoArgsConstructor
@AllArgsConstructor
public class NewUser {
    private String name;
    private String sex;
}

实现:

import com.test.test.vo.NewUser;
import com.test.test.vo.OldUser;
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;

public class testCopyProperties {
    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        OldUser oldUser = new OldUser("zhangsan", 22);
        NewUser newUser = new NewUser("lisi", "男");
        System.out.println("oldUser:"+oldUser);
        System.out.println("newUser:"+newUser);
        BeanUtils.copyProperties(oldUser, newUser);
        System.out.println("转换后oldUser:"+oldUser);
        System.out.println("转换后newUser:"+newUser);
    }
}

注意,导包是   import org.apache.commons.beanutils.BeanUtils;

结果:

转换前:
oldUser:OldUser(name=zhangsan, age=22)
newUser:NewUser(name=lisi, sex=男)

转换后oldUser:OldUser(name=lisi, age=22)
转换后newUser:NewUser(name=lisi, sex=男)

 

 

 
posted @ 2022-04-12 17:11  巴啦啦小花总  阅读(38)  评论(0)    收藏  举报