beanUtil拷贝map中属性到Object中
时间: 2024-03-17 15:42:41 浏览: 62
使用BeanUtils类中的populate方法可以将Map中的属性值拷贝到Java对象中。示例如下:
```
// 创建一个Java对象
Person person = new Person();
// 创建一个Map,包含属性值
Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 20);
// 将Map中的属性值拷贝到Java对象中
BeanUtils.populate(person, map);
```
上述代码将Map中的"name"属性值拷贝到person对象的"name"属性中,将"age"属性值拷贝到person对象的"age"属性中。注意,属性名要保持一致,否则拷贝不成功。
相关问题
哪一个BeanUtil可以拷贝map中属性到Object中
常用的JavaBean属性拷贝工具有三种,它们分别是:
1. Apache Commons BeanUtils
2. Spring BeanUtils
3. Cglib BeanCopier
以上三种工具都可以实现将Map中的属性值拷贝到Java对象中,其中Apache Commons BeanUtils是最常用的工具之一。
具体使用方法如下:
```
// 创建一个Java对象
Person person = new Person();
// 创建一个Map,包含属性值
Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 20);
// 将Map中的属性值拷贝到Java对象中
BeanUtils.populate(person, map);
```
上述代码将Map中的"name"属性值拷贝到person对象的"name"属性中,将"age"属性值拷贝到person对象的"age"属性中。注意,属性名要保持一致,否则拷贝不成功。
beanutil 拷贝指定字段
BeanUtils.copyProperties() 方法可以用来拷贝 Java Bean 对象的属性值,但是它会拷贝所有的属性值。如果想要拷贝指定的属性值,可以使用 BeanUtils.copyProperties() 的重载方法,该方法接受一个数组参数,用来指定需要拷贝的属性值。例如:
```java
String[] properties = {"name", "age"};
BeanUtils.copyProperties(source, target, properties);
```
上述代码将会拷贝 source 对象的 name 和 age 属性值到 target 对象。需要注意的是,拷贝的属性名称必须与目标对象的属性名称一致,否则会抛出 NoSuchMethodException 异常。另外,如果源对象的某些属性值为 null,那么在拷贝时这些属性值也会被拷贝到目标对象中。如果想要避免这种情况,可以使用 BeanUtilsBean.getInstance().copyProperties() 方法,该方法会忽略源对象中的 null 值属性。
阅读全文