javaBean与Map相互转换工具

来源:互联网 发布:双十一淘宝客服回复 编辑:程序博客网 时间:2024/05/21 18:30

一)map转为 Bean

import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;import com.yaowan.qipai.common.framework.util.Slf4jLogUtil.LogUtil;/** * bean和map相互转换 * @author xiu * @version 2017年7月31日 下午8:47:25  */public class BeanMapChangeUtil {/** * map 转成 bean *  * @param map * @param clazz * @return * @throws Exception */@SuppressWarnings("rawtypes")public static <T> T toBean(Map map, Class<T> clazz) throws Exception {T bean = clazz.newInstance();try {for (Object object : map.keySet()) {String s = object + "";Field field = clazz.getDeclaredField(s);Class c = field.getType();if (field != null) {field.setAccessible(true);if (String.class.equals(c)) {field.set(bean, map.get(object));} else if (Integer.class.equals(c) || int.class == c) {field.set(bean, Integer.parseInt(map.get(object) + ""));} else if (Long.class.equals(c) || long.class == c) {field.set(bean, Long.parseLong(map.get(object) + ""));} else if (Double.class.equals(c) || double.class == c) {field.set(bean,Double.parseDouble(map.get(object) + ""));} else if (Float.class.equals(c) || float.class == c) {field.set(bean, Float.parseFloat(map.get(object) + ""));} else if (Short.class.equals(c) || short.class == c) {field.set(bean, Short.parseShort(map.get(object) + ""));}}}return bean;} catch (Exception e) {LogUtil.exception(e);}return bean;}/** * 通过私有变量,javaBean转成map *  * @param domain * @return */public static Map<String, String> toMap(Object domain) {Map<String, String> map = new HashMap<String, String>();try {Class<?> clazz = Class.forName(domain.getClass().getName());Field[] fileds = clazz.getDeclaredFields(); // 得到catClass类所有的属性(包括私有属性)for (Field field : fileds) {// 取消java语言访问检查,允许获取私有变量field.setAccessible(true);// 获取变量的类型名称// String returnType = field.getType().getName();// 获取变量的名称String fieldName = field.getName();// 获取当前对象的对应字段的值Object value = field.get(domain);map.put(fieldName, value + "");}} catch (Exception e) {LogUtil.exception(e);;}return map;}}}


二)bean转为Map

/** * 通过私有变量,javaBean转成map *  * @param domain * @return */public static Map<String, String> toMap(Object domain) {Map<String, String> map = new HashMap<String, String>();try {Class<?> clazz = Class.forName(domain.getClass().getName());Field[] fileds = clazz.getDeclaredFields(); // 得到catClass类所有的属性(包括私有属性)for (Field field : fileds) {// 取消java语言访问检查,允许获取私有变量field.setAccessible(true);// 获取变量的类型名称// String returnType = field.getType().getName();// 获取变量的名称String fieldName = field.getName();// 获取当前对象的对应字段的值Object value = field.get(domain);map.put(fieldName, value + "");}} catch (Exception e) {LogUtil.exception(e);;}return map;}