java開發BeanUtils類解決實體對象間賦值
實體對象之間相互傳值,如:VO對象的值賦給Entity對象,是代碼中常用功能,如果通過get、set相互賦值,則很麻煩,借助工具類BeanUtils可以輕松地完成操作。
BeanUtils依賴包導入
BeanUtils 是 Apache commons組件的成員之一,主要用於簡化JavaBean封裝數據的操作。使用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(目標,源),將源實體對象的數據賦給目標對象,隻把屬性名相同的數據賦值,目標中的屬性如果在源中不存在,給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開發BeanUtils類解決實體對象間賦值的詳細內容,更多關於使用BeanUtils工具類解決實體對象間賦值的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 聊聊BeanUtils.copyProperties和clone()方法的區別
- 詳解Spring中BeanUtils工具類的使用
- 深入理解Java對象復制
- 基於Spring BeanUtils的copyProperties方法使用及註意事項
- Java BeanUtils.copyProperties的詳解