首页 > 代码库 > commins-beanutils的使用

commins-beanutils的使用

commins-beanutils是通过内省来完成的。

需要两个包:

  • commons-beanutils-1.8.3.jar
  • commons-logging-1.1.1.jar

JavaBean类:

package cn.zy.study;/** * 提供get和set方法 * 并有一个无参的构造方法 * @author zy * */public class Person {		private String name;	private int age;	private String gender;	public Person() {	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	@Override	public String toString() {		return "Person [name=" + name + ", age=" + age + ", gender=" + gender				+ "]";	}	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;	}	}

  

对bean类的操作

package cn.test;import java.lang.reflect.InvocationTargetException;import java.util.HashMap;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.junit.Test;import cn.zy.study.Person;public class Demo3 {	@Test	public void fun1() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{		//用Class类的forName方法来获取对应的class对象		String className = "cn.zy.study.Person";		Class clazz = Class.forName(className);		//使用clazz对应类的默认构造器创造实例		Object bean = clazz.newInstance();		/**使用beanutils工具设置bean类的属性值,		 * 所有的属相值都可以设置成String类型,将会自动转换		 * 没有设置属性的值将为null		 */		BeanUtils.setProperty(bean, "name", "Scott");		BeanUtils.setProperty(bean, "age", "17");		System.out.println(bean);		//得到bean类的属性值,注意属值都将变成String类型		String name = BeanUtils.getProperty(bean, "name");		String age = BeanUtils.getProperty(bean, "age");			}		@Test	/**	 * 将map直接封装到一个bean中	 */	public void fun2() throws InstantiationException, IllegalAccessException, InvocationTargetException{		Map<String,String> map = new HashMap();		map.put("name","Scott");		map.put("age","15");		//利用类的class属性来获取Class对象,并创建		Person bean = Person.class.newInstance();		//将map数据填充到Javabean中		BeanUtils.populate(bean, map);		System.out.println(bean);	}}

  

 

commins-beanutils的使用