1. 程式人生 > 其它 >BeanUtils.copyProperties()方法記錄

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=男)