ConvertUtils,這個工具類的職能是在字符串和指定類型的實例之間進行轉換。
目前支持的類型有:
- java.lang.BigDecimal
- java.lang.BigInteger
- boolean and java.lang.Boolean
- byte and java.lang.Byte
- char and java.lang.Character
- java.lang.Class
- double and java.lang.Double
- float and java.lang.Float
- int and java.lang.Integer
- long and java.lang.Long
- short and java.lang.Short
- java.lang.String
- java.io.File
- java.net.URL
- java.sql.Date
- java.sql.Time
- java.sql.Timestamp
總體提供兩類功能:
1. 將字符串轉換為指定類型;
2. 注冊、注銷和查詢類型轉換器;
convert(java.lang.Object value)
將任意的實例轉變為String,用法非常簡單。在嘗試的過程中,感覺與調用實例上的toString()方法的效果一樣,不知道是不是在這個方法內僅僅是調用了傳入實例的toString()方法。
ps:需要讀源代碼才能清楚。
convert(java.lang.String value, java.lang.Class clazz)
將字符串value轉換為clazz的一個實例;如果失敗的話,就以String的形式返回value。
convert(java.lang.String[] values, java.lang.Class clazz)
這個方法是對前一方法的加強版,將數組中的每個value都進行轉換,最后以Object返回。(數組也是Object?。?
deregister()和deregister(java.lang.Class clazz)
注銷轉換器,前者將所有的轉換器注銷掉,后者只注銷對應于clazz的轉換器。注銷在這里不是徹底刪除了,而是將轉換器變為默認的轉換器(apache commons提供的)。
lookup(java.lang.Class clazz)
獲取指定類型clazz的轉換器.
register(Converter converter, java.lang.Class clazz)
為指定類型clazz注冊轉換器converter。如果clazz已經存在一個對應的轉換器,那么converter,將覆蓋原來的轉換器。也就是說,我們可以為String,Double創建自定義的類型轉換器,并在注冊后進行使用。
ps:apache的類定義明確,描述非常清楚,所以就不貼出例子了。當然這只是到達可以正常使用的階段,如果要進行改造或者創建自己的ConvertUtils,那可能需要更多的時間,因為還要去參考ConvertUtilsBean,這里就不詳述了。
以下為使用convertUtils的一個DATE類型的例子(該例子來源于尚學堂視屏)
1.定義converter

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31


2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18


2

3

4

5
