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

}

  

时间: 2024-12-22 11:11:40

commins-beanutils的使用的相关文章

JAVA中反射机制五(JavaBean的内省与BeanUtils库)

内省(Introspector) 是Java 语言对JavaBean类属性.事件的一种缺省处理方法. JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则.如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”.方法比较少.这些信息储存在类的私有变量中,通过set().get()获得. 例如类UserInfo : package com.peidasoft.in

BeanUtils框架学习

package com.liang.Instopector; import java.io.Serializable; import java.util.Date; public class Student implements Serializable { private String name="liang"; private int age=21; private Date birthday; public String getName() { return name; } pu

[新手学Java]使用beanUtils控制javabean

使用BeanUtils设置/读取属性的值以及默认支持的自动转化: @Test //使用BeanUtils设置/读取属性的值以及自动转化 public void test1() throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{ Person p=new Person(); //使用BeanUtils设置属性的值 BeanUtils.setProperty(p, "username&quo

BeanUtils --- 封装属性到对象中

1.注意需要两个jar包: commons-beanutils-1.8.3.jar  和 commons-logging-1.1.3.jar public class Admin {//省略getset等通用方法 private int id; private String username; private String pwd; private Date date; } public class APP { @Test public void testBeanUtils() throws E

BeanUtils.populate的作用

它是在org.apache.commons.beanutils.BeanUtils包中的一个方法. 方法的作用:将一些 key-value 的值(例如 hashmap)映射到 bean 中的属性. bean public class User { private String uid; private String username; private String password; private String address; private String status; public St

Beanutils的使用

这是两个javaBean对象 package com.beanutils ; import java.util.*; public class Person { private String name; private String sex; private int age; private Address address; private List goods; private Map contact; public Person() { } public Person(String name

这是个非常强悍的beanutils工具

注:需要的jar包两个(缺一不可): commons-beanutils-1.8.3.jar:commons-logging-1.1.1.jar package cn.test1; import java.util.Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Enumeration; import java.util.UUID; import javax.se

内省Introspector 和BeanUtils 工具对反射属性的包装(简单的不是一点点哦)

public void fun2() throws Exception { //通过反射和dom4j实例化id=stu1的对象,并输出 SAXReader reader = new SAXReader(); Document document = reader.read(this.getClass().getResourceAsStream("/beans.xml")); String xpath="/beans/bean[@id=\"stu1\"]&qu

BeanUtils解决日期问题

1 ConvertUtils.register(new DateLocaleConverter(), Date.class); 2 BeanUtils.populate(user, request.getParameterMap());

利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils

有时遇到将数据传输对象转换成JSON串会将属性值为空的属性去掉,利用Java反射实现JavaBean对象数据传输对象的相同属性复制并初始化数据传输对象属性为空的属性,然后转换成JSON串 package com.banksteel.util; import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.ut