JavaBean 和 Map 之间互相转换
来源:互联网 发布:淘宝开店充话费流程 编辑:程序博客网 时间:2024/05/04 10:15
import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;/** * JavaBean and map converter. * * */public final class BeanMapUtils { /** * Converts a map to a JavaBean. * * @param type type to convert * @param map map to convert * @return JavaBean converted * @throws IntrospectionException failed to get class fields * @throws IllegalAccessException failed to instant JavaBean * @throws InstantiationException failed to instant JavaBean * @throws InvocationTargetException failed to call setters */public static final Object toBean(Class<?> type, Map<String, ? extends Object> map) throws IntrospectionException, IllegalAccessException,InstantiationException, InvocationTargetException {BeanInfo beanInfo = Introspector.getBeanInfo(type);Object obj = type.newInstance();PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();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;descriptor.getWriteMethod().invoke(obj, args);}}return obj;}/** * Converts a JavaBean to a map * * @param bean JavaBean to convert * @return map converted * @throws IntrospectionException failed to get class fields * @throws IllegalAccessException failed to instant JavaBean * @throws InvocationTargetException failed to call setters */public static final Map<String, Object> toMap(Object bean)throws IntrospectionException, IllegalAccessException, InvocationTargetException {Map<String, Object> returnMap = new HashMap<String, Object>();BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();for (int i = 0; i< propertyDescriptors.length; i++) {PropertyDescriptor descriptor = propertyDescriptors[i];String propertyName = descriptor.getName();if (!propertyName.equals("class")) {Method readMethod = descriptor.getReadMethod();Object result = readMethod.invoke(bean, new Object[0]);if (result != null) {returnMap.put(propertyName, result);} else {returnMap.put(propertyName, "");}}}return returnMap;}<span style="white-space:pre">public</span> static final Map<String, String> toStringMap(Object bean) {<span style="white-space:pre">if (bean == null) {return null;<span style="white-space:pre"></span><span style="white-space:pre"></span></span>}<span style="white-space:pre">Map<String, String> returnMap = new HashMap<String, String>();</span><span style="white-space:pre">BeanInfo beanInfo;<span style="white-space:pre"></span>try {</span>}
1 1
- JavaBean 和 Map 之间互相转换
- JavaBean 和 Map 之间互相转换
- javabean/List<javabean>与map/List<map>互相转换
- JavaBean对象与Map对象互相转换
- JavaBean对象与Map对象互相转换
- json和javabean互相转换
- javabean和json互相转换
- json和map以及javabean之间的转换
- json与map之间的互相转换
- Map与JavaBean之间的转换
- JAXB实现JavaBean和xml互相转换
- Map和javaBean相互转换
- JavaBean、List与XML之间的互相转换
- java对象和Map之间互相转换的三种实现方式
- Jaxb技术进行xml和javabean对象之间互相转化
- java 数据map和json互相转换
- java 数据map和json互相转换
- javabean和map相互转换工具类
- 崭新的开始
- Eclipse 中设置JVM 内存
- http 协议学习
- java eclipse环境配置
- Buffer类的详解(转)
- JavaBean 和 Map 之间互相转换
- WPF动画简单练习
- 二叉树算法
- 计算两个时间的日期差
- 第17周项目-16指针法去除空格
- 软件混音的实现
- Java实现斐波那契数列
- 将字符串转化成数字
- 查漏补缺,巩固基础——C++Primer之旅day4