BeanUtils.copyProperties()參數(shù)的賦值順序說明
BeanUtils.copyProperties()參數(shù)的賦值順序
BeanUtils.copyProperties(x,y)有兩個不同的jar包,引入不同的包,賦值的順序不一樣。
分別是:
org.springframework.beans.BeanUtils
org.apache.commons.beanutils.BeanUtils
引入 1 的話,是將 x 賦值給 y
引入 2 的話,是將 y 賦值給 x
BeanUtils.copyProperties初體驗,及其參數(shù)含義解釋
用處
BeanUtils.copyProperties是org.springframework.beans.BeanUtils;包下得一個用于對象間得屬性賦值,避免了常規(guī)操作得一個個get再set屬性值,非常好用
案例: 創(chuàng)建一個源類:source
private String username;
private String password;
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "book{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
'}';
}
}
創(chuàng)建一個目標(biāo)target源類
private String username;
private String password;
private String email;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "book{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
'}';
}
}
創(chuàng)建測試類test
import com.sdqj.system_integration.domain.book;
import com.sdqj.system_integration.domain.book2;
import org.springframework.beans.BeanUtils;
public class test {
public static void main(String[] args) {
book bo=new book();
bo.setEmail("1111");
bo.setPassword("222");
bo.setUsername("333");
book2 bo2=new book2();
BeanUtils.copyProperties(bo,bo2);
System.out.println(bo.toString());
System.out.println(bo2.toString());
}
}
結(jié)果展示:

ignoreProperties參數(shù)
ignoreProperties參數(shù)意思是忽略某個參數(shù),使其不被復(fù)制,可寫多個被忽略得參數(shù)
案例
import com.sdqj.system_integration.domain.book;
import com.sdqj.system_integration.domain.book2;
import org.springframework.beans.BeanUtils;
public class test {
public static void main(String[] args) {
book bo=new book();
bo.setEmail("1111");
bo.setPassword("222");
bo.setUsername("333");
book2 bo2=new book2();
BeanUtils.copyProperties(bo,bo2,"username","password");
System.out.println(bo.toString());
System.out.println(bo2.toString());
}
結(jié)果展示:

還有源代碼中得Class<?> editable參數(shù),不太了解其中得含義,但只能放target(目標(biāo)類)
案例測試
public static void main(String[] args) {
book bo=new book();
bo.setEmail("1111");
bo.setPassword("222");
bo.setUsername("333");
book2 bo2=new book2();
BeanUtils.copyProperties(bo,bo2,book2.class);
System.out.println(bo.toString());
System.out.println(bo2.toString());
}
結(jié)果如下:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java數(shù)據(jù)結(jié)構(gòu)與算法之快速排序詳解
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之快速排序,結(jié)合實例形式詳細(xì)分析了快速排序的原理、實現(xiàn)步驟、相關(guān)操作技巧與注意事項,需要的朋友可以參考下2017-05-05
Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的踩坑記錄
在某些情況下,需要在執(zhí)行新增后,需要獲取到新增行的id,這篇文章主要給大家介紹了關(guān)于Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
SpringBoot在項目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法
這篇文章主要給大家介紹了SpringBoot在項目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的兩種方法,實現(xiàn)DisposableBean接口和使用@PreDestroy注解,文中有詳細(xì)的代碼講解,具有一定的參考價值,需要的朋友可以參考下2023-12-12
Java去重排序之Comparable與Comparator的使用及說明
這篇文章主要介紹了Java去重排序之Comparable與Comparator的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04

