BeanUtils: 简化JavaBean封装数据的操作

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import org.apache.commons.beanutils.BeanUtils;

/*
 * BeanUtils:Apache commons提供的一个组件,主要功能就是为了简化JavaBean封装数据的操作
 * 			static void	setProperty(Object bean, String name, Object value) 
 * 			static String getProperty(Object bean, String name) 
 * 			static void	populate(Object bean, Map properties) 
 * 
 * 注意:BeanUtils的setProperty和getProperty方法底层并不是直接操作成员变量,而是操作和成员变量名有关的get和set方法
 */
public class BeanUtilsDemo {
	public static void main(String[] args) throws ReflectiveOperationException {
		//static void	populate(Object bean, Map properties)
		Person p = new Person();
		
		HashMap<Object, Object> hm = new HashMap<>();
		hm.put("name", "尹超");
		hm.put("age", "18");
		hm.put("gender", "男");
		
		BeanUtils.populate(p, hm);
		System.out.println(p);  //Person [name=尹超, age=18, gender=男]
	}
	private static void method() throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		Person p = new Person();
		//System.out.println(p);
		
		//static void	setProperty(Object bean, String name, Object value) :给JavaBean对象的成员变量进行赋值
		BeanUtils.setProperty(p, "name", "zhangsan");
		//BeanUtils.setProperty(p, "age", 18);
		//System.out.println(p);
		
		//static String getProperty(Object bean, String name) 
		String name = BeanUtils.getProperty(p, "name");
		System.out.println(name);
	}
}

import java.io.Serializable;

import javax.crypto.SecretKey;

/*
 * JavaBean:用于封装数据
 * 		类使用公共进行修饰
 * 		提供私有修饰的成员变量
 * 		为成员变量提供公共getter和setter方法
 * 		提供公共无参的构造
 * 		实现序列号接口
 * 
 */
public class Person implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7465071651404431035L;
	
	private String name;
	private int age;
	private String gender;
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", gender=" + gender + "]";
	}
}

猜你喜欢

转载自blog.csdn.net/ludadan/article/details/80014903