java開(kāi)發(fā)BeanUtils類解決實(shí)體對(duì)象間賦值
實(shí)體對(duì)象之間相互傳值,如:VO對(duì)象的值賦給Entity對(duì)象,是代碼中常用功能,如果通過(guò)get、set相互賦值,則很麻煩,借助工具類BeanUtils可以輕松地完成操作。
BeanUtils依賴包導(dǎo)入
BeanUtils 是 Apache commons組件的成員之一,主要用于簡(jiǎn)化JavaBean封裝數(shù)據(jù)的操作。使用BeanUtils必須導(dǎo)入相應(yīng)的jar包,BeanUtils的maven坐標(biāo)為
<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version> </dependency>
示例
將前端傳來(lái)的學(xué)生排名信息(StudentVo對(duì)象)分別賦給學(xué)生對(duì)象(StudentEntity)和排名對(duì)象(RankingEntity),這三個(gè)類代碼如下:
@Data public class StudentVo { private String sno; private String sname; private Integer ranking; private String schoolTerm; public String toString(){ return "studentVo對(duì)象的值 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對(duì)象的值 sno:"+getSno()+" sname:"+getSname()+" sage:"+getSage(); } } @Data public class RankingEntity { private String sno; private Integer ranking; private String schoolTerm; public String toString(){ return "rankingEntity對(duì)象的值 學(xué)號(hào):"+getSno()+" 名次:"+getRanking().toString()+" 學(xué)期:"+getSchoolTerm(); } }
將VO對(duì)象的值賦給實(shí)體對(duì)象,通過(guò)BeanUtils.copyProperties(目標(biāo),源),將源實(shí)體對(duì)象的數(shù)據(jù)賦給目標(biāo)對(duì)象,只把屬性名相同的數(shù)據(jù)賦值,目標(biāo)中的屬性如果在源中不存在,給null值,測(cè)試代碼如下:
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("第三學(xué)期"); 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()); } }
運(yùn)行結(jié)果:
StudentVo 中不存在sage屬性,獲得studentEntity對(duì)象的sage的值為null
以上就是java開(kāi)發(fā)BeanUtils類解決實(shí)體對(duì)象間賦值的詳細(xì)內(nèi)容,更多關(guān)于使用BeanUtils工具類解決實(shí)體對(duì)象間賦值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 基于Java反射的map自動(dòng)裝配JavaBean工具類設(shè)計(jì)示例代碼
- Java如何將任意類型的Object對(duì)象轉(zhuǎn)換為相應(yīng)的實(shí)體對(duì)象
- java中給實(shí)體對(duì)象屬性的空值賦默認(rèn)值
- Java 判斷實(shí)體對(duì)象及所有屬性是否為空的操作
- java實(shí)體對(duì)象與Map之間的轉(zhuǎn)換工具類代碼實(shí)例
- 淺談Java實(shí)體對(duì)象的三種狀態(tài)以及轉(zhuǎn)換關(guān)系
- Java利用反射自動(dòng)封裝成實(shí)體對(duì)象的方法
- Java如何通過(guò)反射將map轉(zhuǎn)換為實(shí)體對(duì)象
相關(guān)文章
利用Jasypt如何對(duì)Spring Boot配置文件加密
這篇文章主要給大家介紹了關(guān)于利用Jasypt如何對(duì)Spring Boot配置文件加密的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Java編程實(shí)現(xiàn)漢字按字母順序排序的方法示例
這篇文章主要介紹了Java編程實(shí)現(xiàn)漢字按字母順序排序的方法,結(jié)合具體實(shí)例形式分析了java編碼轉(zhuǎn)換及字母排序相關(guān)操作技巧,需要的朋友可以參考下2017-07-07SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開(kāi)發(fā)的實(shí)踐
本文主要介紹了SpringBoot項(xiàng)目實(shí)現(xiàn)短信發(fā)送接口開(kāi)發(fā)的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10Spring Boot中的WebSocketMessageBrokerConfigurer接口使用
在SpringBoot中,我們可以使用 WebSocketMessageBrokerConfigurer接口來(lái)配置WebSocket消息代理,以實(shí)現(xiàn)實(shí)時(shí)通信,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11