Module bus.core

Class RegisterConverter

java.lang.Object
org.miaixz.bus.core.convert.ConverterWithRoot
org.miaixz.bus.core.convert.RegisterConverter
All Implemented Interfaces:
Serializable, Converter

public class RegisterConverter extends ConverterWithRoot implements Serializable
基于类型注册的转换器,提供两种注册方式,按照优先级依次为:
  1. 按照匹配注册,使用register(MatcherConverter)。 注册后一旦给定的目标类型和值满足MatcherConverter.match(Type, Class, Object),即可调用对应转换器转换。
  2. 按照类型注册,使用register(Type, Converter),目标类型一致,即可调用转换。
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • RegisterConverter

      public RegisterConverter(Converter rootConverter)
      构造
      Parameters:
      rootConverter - 根转换器,用于子转换器转换
  • Method Details

    • convert

      public Object convert(Type targetType, Object value) throws ConvertException
      Description copied from interface: Converter
      转换为指定类型 如果类型无法确定,将读取默认值的类型做为目标类型
      Specified by:
      convert in interface Converter
      Parameters:
      targetType - 目标Type,非泛型类使用
      value - 原始值,如果对象实现了此接口,则value为this
      Returns:
      转换后的值
      Throws:
      ConvertException - 转换无法正常完成或转换异常时抛出此异常
    • getConverter

      public Converter getConverter(Type type, Object value, boolean isCustomFirst)
      获得转换器
      Parameters:
      type - 类型
      value - 转换的值
      isCustomFirst - 是否自定义转换器优先
      Returns:
      转换器
    • getDefaultConverter

      public Converter getDefaultConverter(Type type)
      获得默认转换器
      Parameters:
      type - 类型
      Returns:
      转换器
    • getCustomConverter

      public Converter getCustomConverter(Type type, Object value)
      获得匹配类型的自定义转换器
      Parameters:
      type - 类型
      value - 被转换的值
      Returns:
      转换器
    • getCustomConverter

      public Converter getCustomConverter(Type type)
      获得指定类型对应的自定义转换器
      Parameters:
      type - 类型
      Returns:
      转换器
    • register

      public RegisterConverter register(Type type, Converter converter)
      登记自定义转换器,登记的目标类型必须一致
      Parameters:
      type - 转换的目标类型
      converter - 转换器
      Returns:
      this
    • register

      public RegisterConverter register(MatcherConverter converter)
      登记自定义转换器,符合MatcherConverter.match(Type, Class, Object)则使用其转换器
      Parameters:
      converter - 转换器
      Returns:
      this