java 包之 BeanUtils包的使用


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類

 

復制代碼
 1 public class Student {
2
3
4
5 private String name;
6
7 private int age;
8
9 private Date birth;
10
11
12
13
14
15 public String getName() {
16
17 return name;
18
19 }
20
21 public void setName(String name) {
22
23 this.name = name;
24
25 }
26
27 public int getAge() {
28
29 return age;
30
31 }
32
33 public void setAge(int age) {
34
35 this.age = age;
36
37 }
38
39 public Date getBirth() {
40
41 return birth;
42
43 }
44
45 public void setBirth(Date birth) {
46
47 this.birth = birth;
48
49 }
50
51
52
53 }
復制代碼

 

一、先賦值Bean對象里的字段屬性,然后再取值:

 

復制代碼
 1 @Test
2
3 public void test01() throws Exception{
4
5 //1.加載類
6  
7 Class clss = Class.forName("com.L.introspector.Student");
8
9 //2.創建Bean對象
10  
11 Student st = (Student) clss.newInstance();
12
13 //3.通過BeanUtils給對象屬性賦值
14  
15 BeanUtils.setProperty(st, "name", "L。");
16
17 //4.輸出對象屬性值
18  
19 String str = BeanUtils.getProperty(st, "name");
20
21 System.out.println(str);
22
23 }
復制代碼

BeanUtils的setProperty(object,name,value)方法需要的參數分別是

Object=加載類的對象

Name=類屬性的名稱

Value=所賦的值;

BeanUtils的getProperty(object,name)方法的返回值是String類型,所以可以直接輸出;

二、 使用BeanUtils自帶的時間轉化器轉化時間

 

復制代碼
 1 @Test
2
3 public void test03() throws Exception{
4
5 //創建Student Bean對象
6  
7 Student st = new Student();
8
9 //使用自帶轉化器轉化時間格式
10  
11 ConvertUtils.register(new DateLocaleConverter(), Date.class);
12
13 //賦值給birth屬性
14  
15 BeanUtils.setProperty(st, "birth", "1991-09-25");
16
17 //輸出birth屬性的值
18  
19 System.out.println(st.getBirth());
20
21 }
復制代碼

三、 自定義日期格式轉換器

 

復制代碼
 1 @Test
2
3 public void test04()throws Exception{
4
5 //創建Student對象
6
7 Student st = new Student();
8
9 //使用CovertUtils注冊創建一個日期格式轉換器
10
11 ConvertUtils.register(new Converter() {
12
13
14
15 @Override
16
17 public Object convert(Class type, Object value) {
18
19 //當value參數等於空時返回空
20
21 if(value==null){
22
23 return null;
24
25 }
26
27 //自定義時間的格式為yyyy-MM-dd
28
29 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
30
31 //創建日期類對象
32
33 Date dt = null;
34
35
36
37 try {
38
39 //使用自定義日期的格式轉化value參數為yyyy-MM-dd格式
40
41 dt = sdf.parse((String)value);
42
43 } catch (ParseException e) {
44
45 // TODO Auto-generated catch block
46
47 e.printStackTrace();
48
49 }
50
51 //返回dt日期對象
52
53 return dt;
54
55 }
56
57 }, Date.class);
58
59 //給birth賦值
60
61 BeanUtils.setProperty(st, "birth", "1991-09-25");
62
63 //輸出
64
65 System.out.println(st.getBirth());
66
67 }
復制代碼

ConvertUtils.register(new Converter()中,new Converter()就相當於重寫了Converter類中方法:

       Public class MyConerter implements Converter{

              //並且在此處創建了匿名的對象

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM