Package org.miaixz.bus.core.convert
package org.miaixz.bus.core.convert
万能类型转换器以及各种类型转换的实现类,其中Convert为转换器入口,提供各种toXXX方法和convert方法 转换器是典型的策略模式应用,可自定义转换策略。提供了常用类型的转换策略,自定义转换接口包括:
Converter,标准转换接口,通过类型匹配策略后调用使用。MatcherConverter,带有match方法的Converter,通过自身匹配判断调用转换。
公共的转换器封装有两种:
RegisterConverter,提供预定义的转换规则,也可以注册自定义转换规则。CompositeConverter,复合转换器,封装基于注册的、特别转换(泛型转换)等规则,实现万能转换。
转换器是典型的策略模式应用,通过实现Converter 接口, 自定义转换策略。提供了常用类型的转换策略。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
ClassDescription抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑 转换器不会抛出转换异常,转换失败时会返回
null抽象转换器的默认逻辑不适用于有泛型参数的对象,如Map、Collection、Entry等。数组转换器,包括原始类型数组基本变量类型的枚举 基本类型枚举包括原始类型和包装类型Bean转换器,支持:布尔转换器日期转换器强转转换器字符转换器编码对象转换器类转换器 将类名转换为类,默认初始化这个类(执行static块)各种集合类转换器复合转换器,融合了所有支持类型和自定义类型的转换规则 在此类中,存放着默认转换器和自定义转换器,默认转换器是预定义的一些转换器,自定义转换器存放用户自定的转换器。类型转换器类型转换接口函数,根据给定的值和目标类型,由用户自定义转换规则。货币Currency转换器日期转换器Duration对象转换器空值或空对象转换器,转换结果为目标类型对象的实例化对象无泛型检查的枚举转换器Kotlin Bean转换器,支持:Locale对象转换器 只提供String转换支持Map转换器,通过预定义key和value的类型,实现: Map 转 Map,key和value类型自动转换 Bean 转 Map,字段和字段值类型自动转换带有匹配的转换器 判断目标对象是否满足条件,满足则转换,否则跳过 实现此接口同样可以不判断断言而直接转换数字转换器 支持类型为:java.lang.Bytejava.lang.Shortjava.lang.Integerjava.util.concurrent.atomic.AtomicIntegerjava.lang.Longjava.util.concurrent.atomic.AtomicLongjava.lang.Floatjava.lang.Doublejava.math.BigDecimaljava.math.BigIntegerOptional对象转换器Optional对象转换器字符串转换器Period对象转换器原始类型转换器 支持类型为:byteshortintlongfloatdoublecharbooleanRecord类的转换器,支持:Reference转换器基于类型注册的转换器,提供两种注册方式,按照优先级依次为: 按照匹配注册,使用RegisterConverter.register(MatcherConverter)。特殊类型转换器,如果不符合特殊类型,则返回null继续其它转换规则 对于特殊对象(如集合、Map、Enum、数组)等的转换器,实现转换 注意:此类中的转换器查找是通过遍历方式StackTraceElement转换器 只支持Map方式转换字符串转换器,提供各种对象转换为字符串的逻辑封装JDK8中新加入的java.time包对象解析转换器 支持的对象包括:TimeZone转换器Tuple转换器URI对象转换器URL对象转换器UUID对象转换器转换器日期转换器ZoneId转换器