<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
<!-- 設定gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> Map<String, Object> map = null; String jsonString = JSONUtil.toJsonStr(uploadBaseEntity); Gson gson = new Gson(); map = new HashMap<>(); map = gson.fromJson(jsonString, map.getClass());
/** * 物件轉化為Map * * @param obj * @return * @throws Exception */ public static Map<String, String> objectToMap01(Object obj) throws Exception { if (obj == null) { return null; } Map<String, String> map = new HashMap<String, String>(); Field[] declaredFields = obj.getClass().getDeclaredFields(); for (Field field : declaredFields) { field.setAccessible(true); map.put(field.getName(), (String) field.get(obj)); } return map; }
廢話不說,直接上程式碼!留著用吧...
package com.ddm.message.test; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Java實體類與Map互轉 * @author Administrator * */ public class entityMapTransUtils { private static final Logger logger = LoggerFactory.getLogger(entityMapTransUtils.class); /** * Java實體類轉Map:方法一 * @param obj * @return */ public static Map<String, Object> entityToMap1(Object obj){ Map<String, Object> map = new HashMap<String, Object>(); Class<?> clazz = obj.getClass(); for(Field field : clazz.getDeclaredFields()){ field.setAccessible(true); String fieldName = field.getName(); Object object = null; try { object = field.get(obj); } catch (IllegalArgumentException | IllegalAccessException e) { logger.info(e.getMessage()); } map.put(fieldName, object); } return map; } /** * Java實體類轉Map:方法二 * @param obj * @return */ public static Map<String, Object> entityToMap2(Object obj){ Map<String, Object> map = new HashMap<String, Object>(); try { BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); // 過濾class屬性 if (!key.equals("class")) { // 得到property對應的getter方法 Method getter = property.getReadMethod(); Object value = getter.invoke(obj); map.put(key, value); } } } catch (Exception e) { logger.info(e.getMessage()); } return map; } /** * Map轉實體類:要轉換的Map的key跟實體類屬性名相同的資料會轉過去,不相同的欄位會為null * @param clazz * @param map * @return */ public static <T> T mapToEntity1(Class<T> clazz,Map<String, Object> map){ T obj = null; try { BeanInfo beanInfo = Introspector.getBeanInfo(clazz); obj = clazz.newInstance(); // 建立 JavaBean 物件 PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); // 給 JavaBean 物件的屬性賦值 for (int i = 0; i < propertyDescriptors.length; i++) { PropertyDescriptor descriptor = propertyDescriptors[i]; String propertyName = descriptor.getName(); if (map.containsKey(propertyName)) { Object value = map.get(propertyName); Object[] args = new Object[1]; args[0] = value; try { descriptor.getWriteMethod().invoke(obj, args); } catch (InvocationTargetException e) { logger.info(e.getMessage()); } } } } catch (IllegalAccessException e) { logger.info(e.getMessage()); } catch (IntrospectionException e) { logger.info(e.getMessage()); } catch (IllegalArgumentException e) { logger.info(e.getMessage()); } catch (InstantiationException e) { logger.info(e.getMessage()); } return (T)obj; } }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45