apache commons工具类之 BeanUtils

阅读更多
BeanUtils 提供了对于JavaBean进行各种操作, 比如对象,属性复制等等。

1.创建一个实体类

package commons;

public class User {
	
	private String name;
	
	private int age;

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

}




2.创建一个测试类
  package commons;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;

public class TestUser {
	
	public static void main(String[] args){
		//创建一个user对象,用来作为被克隆的对象  
		User user = new User();
		user.setName("csc");
		user.setAge(24);
		
		try {
	    //1.克隆
			User user2 = (User) BeanUtils.cloneBean(user);
			System.out.println(user2.getName()+" >>> "+ user2.getAge());
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		}
		
		
		Map map = new HashMap();
		map.put("name", "csc1");
		map.put("age", 27);
		
		User u = new User();
		try {
			//2.将一个Map对象转化为一个Bean
			//这个Map对象的key必须与Bean的属性相对应
			BeanUtils.populate(u, map);
			System.out.println(u.getName()+" >>> "+ u.getAge());
			
			
			
			//3.将一个Bean转化为一个Map对象
			Map mapbean = BeanUtils.describe(u);
			for (Map.Entry entry : mapbean.entrySet()) {
				 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
			}
			//key= class and value= class commons.User 再次转化没问题。
			User us = new User();
			BeanUtils.populate(us, mapbean);
			System.out.println(us.getName()+" >>> "+ us.getAge());
		
			
			
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		}
		
		
	}

}


3.运行结果
apache commons工具类之 BeanUtils_第1张图片
  • apache commons工具类之 BeanUtils_第2张图片
  • 大小: 10.4 KB
  • 查看图片附件

你可能感兴趣的:(bean,java,apache)