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,这里就不详述了。