commons-beanutils.jar可以到Apache官网的commons子项目下找到它,或者,在Struts2,Spring的下载包中也能看到它的影子。单独使用时,要多引进一个commons-logging.jar,这个包也是非常见的,可在有commons-beanutils.jar的地方找到它。
好,我们来测试一下,怎么使用这个类库中的两个常用类及它的常用方法。首先,写一个POJO类,代码如下:
package rong.propertyUtils;


public class Entity
{
private Integer id = 5;
private String name = "rongxinhua";

public Integer getId()
{
return id;
}

public void setId(Integer id)
{
this.id = id;
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public String haha()
{
return "Ha,Ha";
}

public void sayHelle(String name)
{
System.out.println(name + " say, Hello!");
}

public String countAges(int x, int y)
{
return "My Age is " + (x + y);
}
}

接着写一个测试的类,代码如下:
package rong.propertyUtils;

import java.util.Map;
import org.apache.commons.beanutils.MethodUtils;
import org.apache.commons.beanutils.PropertyUtils;


public class TestPropertyUtils
{

public static void main(String[] args) throws Exception
{
Entity entity = new Entity();
//通过PropertyUtils的getProperty方法获取指定属性的值
Integer id = (Integer)PropertyUtils.getProperty(entity, "id");
String name = (String)PropertyUtils.getProperty(entity, "name");
System.out.println("id = " + id + " name = " + name);
//调用PropertyUtils的setProperty方法设置entity的指定属性
PropertyUtils.setProperty(entity, "name", "心梦帆影");
System.out.println("name = " + entity.getName());
//通过PropertyUtils的describe方法把entity的所有属性与属性值封装进Map中
Map map = PropertyUtils.describe(entity);
System.out.println("id = " + map.get("id") + " name = " + map.get("name"));
//通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(无参的情况)
System.out.println( MethodUtils.invokeMethod(entity, "haha", null) );
//通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(1参的情况)
MethodUtils.invokeMethod(entity, "sayHelle", "心梦帆影");
//通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(多参的情况)

Object[] params = new Object[]
{new Integer(10),new Integer(12)};
String msg = (String)MethodUtils.invokeMethod(entity, "countAges", params);
System.out.println(msg);
}

}

执行结果如下:
id = 5 name = rongxinhua
name = 心梦帆影
id = 5 name = 心梦帆影
Ha,Ha
心梦帆影 say, Hello!
My Age is 22
本文原创,转载请注明出处,谢谢!http://www.blogjava.net/rongxh7(心梦帆影JavaEE技术博客)
posted on 2009-06-22 14:39
心梦帆影 阅读(8885)
评论(2) 编辑 收藏 所属分类:
JavaSE