BeanUtils.copyProperties()參數的賦值順序說明
BeanUtils.copyProperties()參數的賦值順序
BeanUtils.copyProperties(x,y)有兩個不同的jar包,引入不同的包,賦值的順序不一樣。
分別是:
org.springframework.beans.BeanUtils
org.apache.commons.beanutils.BeanUtils
引入 1 的話,是將 x 賦值給 y
引入 2 的話,是將 y 賦值給 x
BeanUtils.copyProperties初體驗,及其參數含義解釋
用處
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)建一個目標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());
}
}
結果展示:

ignoreProperties參數
ignoreProperties參數意思是忽略某個參數,使其不被復制,可寫多個被忽略得參數
案例
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());
}
結果展示:

還有源代碼中得Class<?> editable參數,不太了解其中得含義,但只能放target(目標類)
案例測試
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());
}
結果如下:

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mybatis?Plus插入數據后獲取新數據id值的踩坑記錄
在某些情況下,需要在執(zhí)行新增后,需要獲取到新增行的id,這篇文章主要給大家介紹了關于Mybatis?Plus插入數據后獲取新數據id值的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08
SpringBoot在項目停止(服務停止/關閉退出)之后執(zhí)行的方法
這篇文章主要給大家介紹了SpringBoot在項目停止(服務停止/關閉退出)之后執(zhí)行的兩種方法,實現DisposableBean接口和使用@PreDestroy注解,文中有詳細的代碼講解,具有一定的參考價值,需要的朋友可以參考下2023-12-12
Java去重排序之Comparable與Comparator的使用及說明
這篇文章主要介紹了Java去重排序之Comparable與Comparator的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04

