zoukankan      html  css  js  c++  java
  • commons-beanutils的使用

    commons-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);
    	}
    
    }
    

      

  • 相关阅读:
    learning scala view collection
    scala
    learning scala dependency injection
    learning scala implicit class
    learning scala type alise
    learning scala PartialFunction
    learning scala Function Recursive Tail Call
    learning scala Function Composition andThen
    System.Threading.Interlocked.CompareChange使用
    System.Threading.Monitor的使用
  • 原文地址:https://www.cnblogs.com/zydev/p/6986056.html
Copyright © 2011-2022 走看看