BeanUtils工具包是由Apache公司所開發,主要是方便程序員對Bean類能夠進行簡便的操作。
在使用BeanUtils工具包之前我們需要的Jar包有以下幾種:
(1) BeanUtils相關包
commons-beanutils-1.8.3.jar
commons-beanutils-1.8.3-javadoc.jar
commons-beanutils-1.8.3-javadoc.jar
commons-beanutils-bean-collections-1.8.3.jar
commons-beanutils-core-1.8.3.jar
(2) Logic4j相關包
commons-logging.jar
log4j.jar
既然要對Bean對象進行操作,那麼就需要一個Bean的測試類,我們以下面爲所測試的Bean類
public class Student {
private String name;
private int age;
private Date birth;
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;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}
一、先賦值Bean對象裏的字段屬性,然後再取值:
@Test
public void test01() throws Exception{
//1.加載類
Class clss = Class.forName("com.L.introspector.Student");
//2.創建Bean對象
Student st = (Student) clss.newInstance();
//3.通過BeanUtils給對象屬性賦值
BeanUtils.setProperty(st, "name", "L。");
//4.輸出對象屬性值
String str = BeanUtils.getProperty(st, "name");
System.out.println(str);
}
BeanUtils的setProperty(object,name,value)方法需要的參數分別是
Object=加載類的對象
Name=類屬性的名稱
Value=所賦的值;
BeanUtils的getProperty(object,name)方法的返回值是String類型,所以可以直接輸出;
二、 使用BeanUtils自帶的時間轉化器轉化時間
@Test
public void test03() throws Exception{
//創建Student Bean對象
Student st = new Student();
//使用自帶轉化器轉化時間格式
ConvertUtils.register(new DateLocaleConverter(), Date.class);
//賦值給birth屬性
BeanUtils.setProperty(st, "birth", "1991-09-25");
//輸出birth屬性的值
System.out.println(st.getBirth());
}
三、 自定義日期格式轉換器
@Test
public void test04()throws Exception{
//創建Student對象
Student st = new Student();
//使用CovertUtils註冊創建一個日期格式轉換器
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class type, Object value) {
//當value參數等於空時返回空
if(value==null){
return null;
}
//自定義時間的格式爲yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
//創建日期類對象
Date dt = null;
try {
//使用自定義日期的格式轉化value參數爲yyyy-MM-dd格式
dt = sdf.parse((String)value);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//返回dt日期對象
return dt;
}
}, Date.class);
//給birth賦值
BeanUtils.setProperty(st, "birth", "1991-09-25");
//輸出
System.out.println(st.getBirth());
}
ConvertUtils.register(new Converter()中,new Converter()就相當於重寫了Converter類中方法:
Public class MyConerter implements Converter{
//並且在此處創建了匿名的對象
}