java開發(fā)BeanUtils類解決實體對象間賦值
實體對象之間相互傳值,如:VO對象的值賦給Entity對象,是代碼中常用功能,如果通過get、set相互賦值,則很麻煩,借助工具類BeanUtils可以輕松地完成操作。
BeanUtils依賴包導入
BeanUtils 是 Apache commons組件的成員之一,主要用于簡化JavaBean封裝數(shù)據(jù)的操作。使用BeanUtils必須導入相應的jar包,BeanUtils的maven坐標為
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
示例
將前端傳來的學生排名信息(StudentVo對象)分別賦給學生對象(StudentEntity)和排名對象(RankingEntity),這三個類代碼如下:
@Data
public class StudentVo {
private String sno;
private String sname;
private Integer ranking;
private String schoolTerm;
public String toString(){
return "studentVo對象的值 sno:"+getSno()+" sname:"+getSname()+" ranking:"+getRanking().toString()+" schoolTerm:"+getSchoolTerm();
}
}
@Data
public class StudentEntity {
private String sno;
private String sname;
private Integer sage;
public String toString(){
return "studentEntity對象的值 sno:"+getSno()+" sname:"+getSname()+" sage:"+getSage();
}
}
@Data
public class RankingEntity {
private String sno;
private Integer ranking;
private String schoolTerm;
public String toString(){
return "rankingEntity對象的值 學號:"+getSno()+" 名次:"+getRanking().toString()+" 學期:"+getSchoolTerm();
}
}
將VO對象的值賦給實體對象,通過BeanUtils.copyProperties(目標,源),將源實體對象的數(shù)據(jù)賦給目標對象,只把屬性名相同的數(shù)據(jù)賦值,目標中的屬性如果在源中不存在,給null值,測試代碼如下:
public class App
{
public static void main( String[] args ) throws InvocationTargetException, IllegalAccessException {
StudentVo studentVo = new StudentVo();
studentVo.setSno("1");
studentVo.setRanking(20);
studentVo.setSname("胡成");
studentVo.setSchoolTerm("第三學期");
System.out.println(studentVo.toString());
StudentEntity studentEntity = new StudentEntity();
BeanUtils.copyProperties(studentEntity,studentVo);
System.out.println(studentEntity.toString());
RankingEntity rankingEntity = new RankingEntity();
BeanUtils.copyProperties(rankingEntity,studentVo);
System.out.println(rankingEntity.toString());
}
}
運行結果:

StudentVo 中不存在sage屬性,獲得studentEntity對象的sage的值為null
以上就是java開發(fā)BeanUtils類解決實體對象間賦值的詳細內容,更多關于使用BeanUtils工具類解決實體對象間賦值的資料請關注腳本之家其它相關文章!
相關文章
Netty分布式pipeline傳播inbound事件源碼分析
這篇文章主要為大家介紹了Netty分布式pipeline傳播inbound事件的源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03
SpringBoot+Vue+Axios+BootStrap實現(xiàn)圖書的增刪改查功能示例
本文主要介紹了SpringBoot+Vue+Axios+BootStrap實現(xiàn)圖書的增刪改查功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
使用TraceId在Spring Cloud中實現(xiàn)線上問題快速定位
在微服務架構中,服務間的互相調用使得問題定位變得復雜,在此背景下,TraceId為我們提供了一個在復雜環(huán)境中追蹤請求路徑和定位問題的工具,本文不僅介紹TraceId的基本概念,還將結合真實場景,為您展示如何在Spring Cloud中應用它2023-09-09
Java中的Map集合根據(jù)key值排序的實現(xiàn)
本文主要介紹了Java中的Map集合如何根據(jù)key值排序,包含使用TreeMap和使用lambda表達式和Stream流兩種方法,具有一定的參考價值,感興趣的可以了解一下2024-03-03
SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解
PageHelper是mybatis框架的一個插件,用于支持在mybatis執(zhí)行分頁操作。本文將通過SpringBoot整合PageHelper實現(xiàn)分頁查詢功能,需要的可以參考一下2022-03-03

