日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别

發布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.cnblogs.com/fayf/articles/1272982.html

一、簡介:
BeanUtils提供對Java反射和自省API的包裝。其主要目的是利用反射機制對JavaBean的屬性進行處理。我們知道,一個JavaBean通常包含了大量的屬性,很多情況下,對JavaBean的處理導致大量get/set代碼堆積,增加了代碼長度和閱讀代碼的難度。

二、用法:
BeanUtils是這個包里比較常用的一個工具類,這里只介紹它的copyProperties()方法。該方法定義如下:

如果你有兩個具有很多相同屬性的JavaBean,一個很常見的情況就是Struts里的PO對象(持久對象)和對應的ActionForm,例如 Teacher和TeacherForm。我們一般會在Action里從ActionForm構造一個PO對象,傳統的方式是使用類似下面的語句對屬性逐個賦值:

//得到TeacherForm
TeacherForm teacherForm=(TeacherForm)form;
//構造Teacher對象 Teacher teacher=new Teacher(); //賦值 teacher.setName(teacherForm.getName()); teacher.setAge(teacherForm.getAge()); teacher.setGender(teacherForm.getGender());
teacher.setMajor(teacherForm.getMajor()); teacher.setDepartment(teacherForm.getDepartment()); //持久化Teacher對象到數據庫 HibernateDAO.save(teacher);而使用BeanUtils后,代碼就大大改觀了,如下所示:
//得到TeacherForm TeacherForm teacherForm=(TeacherForm)form; //構造Teacher對象 Teacher teacher=new Teacher(); //賦值 BeanUtils.copyProperties(teacher,teacherForm); //持久化Teacher對象到數據庫 HibernateDAO.save(teacher);

如果Teacher和TeacherForm間存在名稱不相同的屬性,則BeanUtils不對這些屬性進行處理,需要程序員手動處理。例如 Teacher包含modifyDate(該屬性記錄最后修改日期,不需要用戶在界面中輸入)屬性而TeacherForm無此屬性,那么在上面代碼的 copyProperties()后還要加上一句:

怎么樣,很方便吧!除BeanUtils外還有一個名為PropertyUtils的工具類,它也提供copyProperties()方法,作用與 BeanUtils的同名方法十分相似,主要的區別在于后者提供類型轉換功能,即發現兩個JavaBean的同名屬性為不同類型時,在支持的數據類型范圍內進行轉換,而前者不支持這個功能,但是速度會更快一些。BeanUtils支持的轉換類型如下:

這里要注意一點,java.util.Date是不被支持的,而它的子類java.sql.Date是被支持的。因此如果對象包含時間類型的屬性,且希望被轉換的時候,一定要使用java.sql.Date類型。否則在轉換時會提示argument mistype異常。

三、優缺點:

Apache Jakarta Commons項目非常有用。我曾在許多不同的項目上或直接或間接地使用各種流行的commons組件。其中的一個強大的組件就是BeanUtils。我 將說明如何使用BeanUtils將local實體bean轉換為對應的value 對象:

上面的代碼從aLocal對象復制屬性到aValue對象。它相當簡單!它不管local(或對應的value)對象有多少個屬性,只管進行復制。我們假設 local對象有100個屬性。上面的代碼使我們可以無需鍵入至少100行的冗長、容易出錯和反復的get和set方法調用。這太棒了!太強大了!太有用 了!

現在,還有一個壞消息:使用BeanUtils的成本驚人地昂貴!我做了一個簡單的測試,BeanUtils所花費的時間要超過取數 據、將其復制到對應的 value對象(通過手動調用get和set方法),以及通過串行化將其返回到遠程的客戶機的時間總和。所以要小心使用這種威力!

?

轉載于:https://www.cnblogs.com/wangpei/archive/2012/02/09/2344183.html

總結

以上是生活随笔為你收集整理的BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天色天天射天天干 | 91爱国产| 成年人毛片 | 亚洲精品视 | 色爽爽一区二区三区 | 亚洲日本在线观看 | 伊人伊人网 | 欧美在线播放一区 | 69国产在线 | 久久国内精品 | 日韩片在线 | 亚洲免费黄色网 | 免费三级在线 | 黄色变态网站 | 在线观看91视频 | 一级大片在线观看 | 一区二区三区不卡视频 | 秋霞av影院 | 精品一区二区三区欧美 | 久久dvd| 欧美日韩色片 | 欧美一级片播放 | 国产欧美一区二区三区白浆喷水 | 狠狠干2018 | 国产人妻一区二区三区四区五区六 | 欧美国产乱视频 | 涩涩视屏 | 国产视频成人 | 涩涩天堂 | 老司机在线观看视频 | 美女三级网站 | 无码人妻aⅴ一区二区三区玉蒲团 | 看黄网站在线 | 精品色图 | 豆花在线观看 | 色欧美色 | 男男受被啪到高潮自述 | 99re在线观看视频 | 日本三级吃奶头添泬无码苍井空 | 亚洲一区二区三区三州 | 好吊色这里只有精品 | 日韩操 | 日本一区中文 | 上原亚衣在线观看 | 黑人精品xxx一区一二区 | 午夜免费片 | 肌肉猛男裸体gay网站免费 | 欧美精品日韩在线 | 青青草色视频 | 日韩爱爱网 | 国产人与zoxxxx另类 | 亚洲国产毛片 | 男人和女人在床的app | 香蕉视频在线观看免费 | 中国人与拘一级毛片 | 欧美二区在线观看 | 超碰97在线播放 | 日日爽夜夜| 草久网| 今天高清视频在线观看视频 | 午夜av激情| av鲁丝一区二区鲁丝 | 中文字幕中文字幕 | 婷婷日| 182av| 黄色在线免费观看网站 | 国产又粗又长又黄视频 | 国产精品国产精品国产专区不卡 | 国产剧情av麻豆香蕉精品 | 日本www在线观看 | 午夜激情国产 | 农村末发育av片一区二区 | 男插女视频在线观看 | av影院在线观看 | 日本高清视频一区二区三区 | 十大污视频 | 免费黄色在线播放 | www.中文字幕av | 中文字幕 日韩 欧美 | 一区二区三区国 | 国产一区不卡在线观看 | 成人av影视在线观看 | 亚洲精品成人片在线观看精品字幕 | 欧美成人黄色网 | 成av人片一区二区三区久久 | 国产精品女教师 | 东北少妇不带套对白 | 亚洲色成人www永久在线观看 | 亚洲自拍色| 天天操天天干视频 | 高清视频一区 | 国产在线看| 国产精品伦子伦免费视频 | 成人深夜福利在线观看 | 国产麻豆一精品一av一免费 | 欧美另类z0z变态 | 大地资源影视在线播放观看高清视频 | 456亚洲影院 | www日本黄色|