成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

放心大膽的用,BeanUtils.copyProperties沒(méi)有想象中的那么差

開(kāi)發(fā) 前端
今天我們來(lái)分析一下,BeanUtils.copyProperties那些常被人吐槽的點(diǎn),是否真的有大家說(shuō)的那么不堪。

不知道從什么時(shí)候開(kāi)始,大家對(duì)Spring的BeanUtils.copyProperties口誅筆伐,似乎用了這個(gè)方法拷貝bean屬性就低人一等,代碼分分鐘就是一堆bug一樣。但我相信,這個(gè)方法在大家的項(xiàng)目中出場(chǎng)率一定不低。

今天我們來(lái)分析一下,BeanUtils.copyProperties那些常被人吐槽的點(diǎn),是否真的有大家說(shuō)的那么不堪。

槽點(diǎn)1. 不聲明屬性的get、set方法,屬性將copy失敗

首先我們要明白,BeanUtils.copyProperties中sourceBean和targetBean的屬性的拷貝,是通過(guò)反射中的Method完成的,所以如果Bean不聲明屬性的set和get方法,就不能進(jìn)行屬性間的copy。

所以說(shuō)這不能說(shuō)人家框架有問(wèn)題,就像我們?nèi)绻涣私釹pringweb的原理,寫(xiě)出的接口出了問(wèn)題,卻說(shuō)Spring框架有問(wèn)題,豈不是欲加之罪?

槽點(diǎn)2. copy為淺拷貝(拷貝對(duì)象的引用)

BeanUtils.copyProperties的定位就是快速淺拷貝,對(duì)于大多數(shù)的場(chǎng)景而言,通過(guò)getset方式快速?gòu)?fù)制屬性,已經(jīng)基本能滿(mǎn)足我們的日常需求。如果有深拷貝的需求,那我們要做的應(yīng)該更換拷貝工具,而不是埋怨BeanUtils.copyProperties有bug。

槽點(diǎn)3. Spring不同版本對(duì)屬性泛型處理方式不同

@Data
public class SourceBean {
private List<Integer> ids;
}

@Data
public class TargetBean {
private List<String> ids;
}

從工具類(lèi)的角度看,兩個(gè)類(lèi)的屬性名相同,但是泛型類(lèi)型不同,所以未進(jìn)行屬性復(fù)制。

這個(gè)問(wèn)題從不同的角度看似乎都有其合理性。從用戶(hù)角度看,同一個(gè)名稱(chēng)的屬性未復(fù)制值,這是個(gè)bug。但是從工具類(lèi)角度看,不同的泛型就相當(dāng)于兩個(gè)屬性,不復(fù)制是合理的。

但是反過(guò)來(lái)想,如果工具類(lèi)直接把屬性名相同的值進(jìn)行復(fù)制,而不校驗(yàn)泛型,那么當(dāng)我們使用target的時(shí)候,發(fā)現(xiàn)獲取的值不是source中的類(lèi)型,是不是又該埋怨工具類(lèi)擅自做主了呢?

所以我覺(jué)得,這個(gè)問(wèn)題頂多算是寫(xiě)代碼不規(guī)范導(dǎo)致的。

性能

對(duì)于絕大部分場(chǎng)景來(lái)說(shuō),屬性復(fù)制不會(huì)對(duì)性能有特別大的影響,一般不會(huì)成為性能瓶頸。

總結(jié)

說(shuō)了這么多,其實(shí)也并不是要大家無(wú)腦的去使用BeanUtils.copyProperties,而是希望大家在合適的場(chǎng)景選用合適的工具做合適的事。

我們常說(shuō),透過(guò)現(xiàn)象看本質(zhì),能真正的理解其背后的復(fù)制原理,才能讓我們的編碼能力不斷提升,而不是人云亦云的說(shuō)某某工具類(lèi)不好用。

借用一位老哥的話(huà):有的人干5年有5年的經(jīng)驗(yàn),有的人一個(gè)經(jīng)驗(yàn)用5年。希望大家都能像前者一樣,在技術(shù)的道路不斷進(jìn)步。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2023-05-29 08:56:34

深拷貝淺拷貝對(duì)象

2024-06-04 00:10:00

開(kāi)發(fā)拷貝

2024-02-27 10:42:04

開(kāi)發(fā)代碼測(cè)試

2016-06-08 13:42:08

2010-08-20 09:37:04

虛擬化

2014-03-31 15:32:36

AndroidNDK開(kāi)發(fā)

2023-12-04 07:18:05

Goswitch

2020-09-30 10:40:56

人工智能AI

2014-01-12 10:47:39

移動(dòng)廣告觀察

2023-07-30 16:09:38

數(shù)字經(jīng)濟(jì)數(shù)字化轉(zhuǎn)型

2022-12-09 07:53:20

vo2dto方法AOP

2015-08-06 15:24:21

2013-01-06 13:45:14

2011-03-21 16:10:08

SQL Server日志

2018-07-30 09:00:49

技術(shù)管理實(shí)踐

2017-08-09 14:49:03

WebHTTPS瀏覽器

2012-10-17 10:08:03

2015-06-24 10:32:13

訊鳥(niǎo)云計(jì)算會(huì)展

2010-01-18 10:27:20

2017-03-13 13:17:53

互聯(lián)網(wǎng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 99精品在线 | 黄色片在线看 | 日日久 | 日韩中文字幕视频 | 国产午夜精品福利 | 91久久精品一区二区二区 | 五月婷婷中文 | 亚洲视频 欧美视频 | 午夜精品久久久久久久久久久久久 | 午夜精品导航 | 操人视频在线观看 | 久久久免费在线观看 | 精品成人佐山爱一区二区 | 国产亚洲精品美女久久久久久久久久 | 日韩在线综合网 | 91精品在线播放 | 欧美一区二区综合 | 国产精品一区二区久久 | 久久久亚洲一区 | 成人二区 | 久草在线 | 午夜黄色影院 | 色橹橹欧美在线观看视频高清 | 密室大逃脱第六季大神版在线观看 | 九九亚洲| 久久夜色精品国产 | 久久精品免费观看 | 久久国产日韩 | 一级二级三级黄色 | 日韩欧美国产一区二区三区 | 日韩免费网站 | 一级黄色绿像片 | 成人免费视频网站在线观看 | 拍真实国产伦偷精品 | 久久久久久久久久性 | 欧美美乳| 国产成人精品一区二区三区在线 | a级黄色片在线观看 | 日韩成人| 国产999精品久久久 午夜天堂精品久久久久 | 日韩在线小视频 |