有没有类似BeanUtils.copyProperties实现Map和Bean之间的复制

2025-04-16 04:00:42
推荐回答(2个)
回答1:

使用Apache的BeanUtils完全可以,其中

1、Map转Bean:

BeanUtils.populate(bean, map);

2、Bean转Map:

new BeanMap(bean);

回答2:

使用Spring 的BeanWrapper来实现从map 设置到bean

T obj = (T) BeanUtils.instantiateClass(type);
BeanWrapper beanWrapper = new BeanWrapperImpl(obj);
beanWrapper.setPropertyValues(m);

反过来,可能需要自己写
BeanWrapper beanWrapper = new BeanWrapperImpl(obj);
PropertyDescriptor[] descriptor = beanWrapper.getPropertyDescriptors();
for (int i = 0; i < descriptor.length; i++) {
m.put(descriptor[i].getName,beanWrapper.getPropertyValue(name));
}