欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于Java中BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換問題

 更新時(shí)間:2022年03月24日 14:24:43   作者:m0_67403240  
這篇文章主要介紹了利用BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換,通過net.sf.cglib.beans.BeanMap類中的方法來轉(zhuǎn)換,效率極高,本文給大家分享實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧

javabean與map的轉(zhuǎn)換有很多種方式,比如:

1、通過ObjectMapper先將bean轉(zhuǎn)換為json,再將json轉(zhuǎn)換為map,但是這種方法比較繞,且效率很低,經(jīng)測試,循環(huán)轉(zhuǎn)換10000個(gè)bean,就需要12秒?。?!不推薦使用

2、通過Java反射,獲取bean類的屬性和值,再轉(zhuǎn)換到map對應(yīng)的鍵值對中,這種方法次之,但稍微有點(diǎn)麻煩

3、通過net.sf.cglib.beans.BeanMap類中的方法,這種方式效率極高,它跟第二種方式的區(qū)別就是因?yàn)槭褂昧司彺?,初次?chuàng)建bean時(shí)需要初始化,之后就使用緩存,所以速度極快,經(jīng)測試,循環(huán)bean和map的轉(zhuǎn)換10000次,僅需要300毫秒左右。

所以,推薦第3種方式。 以下是相關(guān)代碼:

/**
* 將對象裝換為map
* @param bean
* @return
*/
public static Map<String, Object> beanToMap(T bean) {
Map<String, Object> map = Maps.newHashMap();
if (bean != null) {
BeanMap beanMap = BeanMap.create(bean);
for (Object key : beanMap.keySet()) {
map.put(key+"", beanMap.get(key));
}
}
return map;
}

/**
* 將map裝換為javabean對象
* @param map
* @param bean
* @return
*/
public static T mapToBean(Map<String, Object> map,T bean) {
BeanMap beanMap = BeanMap.create(bean);
beanMap.putAll(map);
return bean;
}

/**
* 將List轉(zhuǎn)換為List<Map<String, Object>>
* @param objList
* @return
* @throws JsonGenerationException
* @throws JsonMappingException
* @throws IOException
*/
public static List<Map<String, Object>> objectsToMaps(List objList) {
List<Map<String, Object>> list = Lists.newArrayList();
if (objList != null && objList.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = objList.size(); i < size; i++) {
bean = objList.get(i);
map = beanToMap(bean);
list.add(map);
}
}
return list;
}

/**
* 將List<Map<String,Object>>轉(zhuǎn)換為List
* @param maps
* @param clazz
* @return
* @throws InstantiationException
* @throws IllegalAccessException
*/
public static List mapsToObjects(List<Map<String, Object>> maps,Class clazz) throws InstantiationException, IllegalAccessException {
List list = Lists.newArrayList();
if (maps != null && maps.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = maps.size(); i < size; i++) {
map = maps.get(i);
bean = clazz.newInstance();
mapToBean(map, bean);
list.add(bean);
}
}
return list;
}

到此這篇關(guān)于關(guān)于Java中BeanMap進(jìn)行對象與Map的相互轉(zhuǎn)換問題的文章就介紹到這了,更多相關(guān)BeanMap對象與Map的相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java接口私有方法實(shí)現(xiàn)過程解析

    java接口私有方法實(shí)現(xiàn)過程解析

    這篇文章主要介紹了java接口私有方法實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Mybatis 中如何判斷集合的size

    Mybatis 中如何判斷集合的size

    這篇文章主要介紹了在Mybatis中判斷集合的size操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java在Excel中創(chuàng)建透視表方法解析

    Java在Excel中創(chuàng)建透視表方法解析

    這篇文章主要介紹了Java在Excel中創(chuàng)建透視表方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java源碼解析之可重入鎖ReentrantLock

    Java源碼解析之可重入鎖ReentrantLock

    今天小編就為大家分享一篇關(guān)于Java源碼解析之可重入鎖ReentrantLock,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Springboot實(shí)現(xiàn)前后端分離excel下載

    Springboot實(shí)現(xiàn)前后端分離excel下載

    這篇文章主要介紹了Springboot實(shí)現(xiàn)前后端分離excel下載,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java注解處理器學(xué)習(xí)在編譯期修改語法樹教程

    java注解處理器學(xué)習(xí)在編譯期修改語法樹教程

    這篇文章主要為大家介紹了java注解處理器學(xué)習(xí)在編譯期修改語法樹教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 詳解IDEA中MAVEN項(xiàng)目打JAR包的簡單方法

    詳解IDEA中MAVEN項(xiàng)目打JAR包的簡單方法

    本篇文章主要介紹了詳解IDEA中MAVEN項(xiàng)目打JAR包的簡單方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解如何修改idea配置文件位置從C盤更改到D盤

    詳解如何修改idea配置文件位置從C盤更改到D盤

    這篇文章主要給大家介紹了關(guān)于如何將idea的配置文件從默認(rèn)的C盤調(diào)整到D盤,從而節(jié)省C盤使用空間,具有很好的參考價(jià)值,希望對大家有所幫助,需要的朋友可以參考下
    2023-10-10
  • Java實(shí)現(xiàn)冒泡排序簡單示例

    Java實(shí)現(xiàn)冒泡排序簡單示例

    冒泡排序(Bubble Sort)是一種簡單的排序算法,它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯誤就把他們交換過來,下面這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)冒泡排序的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    這篇文章主要介紹了SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評論