由来
Hutool中类型转换最早只是一个工具类,叫做“Convert”,对于每一种类型转换都是用一个静态方法表示,但是这种方式有一个潜在问题,那就是扩展性不足,这导致Hutool只能满足部分类型转换的需求。
解决
为了解决这些问题,对Hutool中这个类做了扩展。思想如下:
- Converter 类型转换接口,通过实现这个接口,重写convert方法,以实现不同类型的对象转换
- ConverterRegistry 类型转换登记中心。将各种类型Convert对象放入登记中心,通过convert方法查找目标类型对应的转换器,将被转换对象转换之。在此类中,存放着默认转换器和自定义转换器,默认转换器是Hutool中预定义的一些转换器,自定义转换器存放用户自定的转换器。
通过这种方式,实现类灵活的类型转换。使用方式如下:
int num=15;
ConverterRegistry converterRegistry = ConverterRegistry.getInstance();
String convert = converterRegistry.convert(String.class, num);
if (convert instanceof String) {
System.out.println(convert);
}
注意:这里只写了默认转换器的例子