? BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。可以将一个表单提交的所有数据封装到JavaBean中。
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
方法 | 描述 |
---|---|
populate(Object bean, Map properties) | 将Map数据封装到指定Javabean中, 一般用于将表单的所有数据封装到javabean |
setProperty(Object obj,String name,Object value) | 设置属性值 |
getProperty(Object obj,String name) | 获得属性值 |
javabean
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
private String name;
private int age;
}
使用代码
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
public class BeanUtilsTest {
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
//1、创建Person对象
Person p = new Person();
//2、创建Map
Map<String, Object> map = new HashMap<>();
//3、map中放入数据,key和Person的成员属性名一致,value要保证数据类型一致
map.put("name", "张三");
map.put("age", 18);
//4、map的数据封装到Person中
BeanUtils.populate(p, map);
System.out.println("map转换的bean:" + p);
//设置属性
BeanUtils.setProperty(p, "name", "李四");
//获取属性
String name = BeanUtils.getProperty(p, "name");
System.out.println("修改后的name:" + name);
}
}
测试结果