将一个 Map 对象转化为一个 JavaBean

/**
* 将一个 Map 对象转化为一个 JavaBean 使用时最好保证value值不为null 不支持枚举类型和 用户自定义类
* @param type 要转化的javabean
* @param map 包含属性值的map map的key值为javabean属性 key值小写
* @return 转化出来的 JavaBean 对象
* @throws Exception Exception
*/
@SuppressWarnings("unchecked")
public Object convertMap(Class type, Map<Object, Object> map)
throws Exception
{
// 创建 JavaBean 对象
Object obj = null;

// 获取类属性
BeanInfo beanInfo = Introspector.getBeanInfo(type);

obj = type.newInstance();

// 给 JavaBean 对象的属性赋值
PropertyDescriptor[] propertyDescriptors = beanInfo
.getPropertyDescriptors();
for (int i = 0; i < propertyDescriptors.length; i++)
{
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName().toLowerCase(
Locale.getDefault());

if (map.containsKey(propertyName))
{
String value = ConvertUtils.convert(map.get(propertyName));
Object[] args = new Object[1];
args[0] = ConvertUtils.convert(value, descriptor
.getPropertyType());

descriptor.getWriteMethod().invoke(obj, args);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值