在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码:
/** * JavaBean对象转化成Map对象 * * @param javaBean */public static Map java2Map(Object javaBean) { Map map = new HashMap(16); try { // 获取javaBean属性 BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); if (propertyDescriptors != null && propertyDescriptors.length > 0) { String propertyName = null; // javaBean属性名 Object propertyValue = null; // javaBean属性值 for (PropertyDescriptor pd : propertyDescriptors) { propertyName = pd.getName(); if (!propertyName.equals("class")) { Method readMethod = pd.getReadMethod(); propertyValue = readMethod.invoke(javaBean, new Object[0]); map.put(propertyName, propertyValue); } } } } catch (Exception e) { logger.error("javaBean转换map失败!",e);//注意:日志最好不要使用 e.printStackTrace();如果打印日志过多,会引起死锁.
} return map;}
原文地址:https://www.cnblogs.com/xinchengv5/p/10711879.html
时间: 2024-09-30 02:31:35