javaBean与Map相互转换工具

一)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;
	}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值