Class CompositeConverter

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

public class CompositeConverter extends RegisterConverter
复合转换器,融合了所有支持类型和自定义类型的转换规则

将各种类型Convert对象放入符合转换器,通过convert方法查找目标类型对应的转换器,将被转换对象转换之。

在此类中,存放着默认转换器和自定义转换器,默认转换器是预定义的一些转换器,自定义转换器存放用户自定的转换器。

Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • CompositeConverter

      public CompositeConverter()
      构造
  • Method Details

    • getInstance

      public static CompositeConverter getInstance()
      获得单例的 ConverterRegistry
      Returns:
      ConverterRegistry
    • convert

      public Object convert(Type type, Object value) throws ConvertException
      转换值为指定类型
      Specified by:
      convert in interface Converter
      Overrides:
      convert in class RegisterConverter
      Parameters:
      type - 类型
      value - 值
      Returns:
      转换后的值,默认为null
      Throws:
      ConvertException - 转换器不存在
    • convert

      public <T> T convert(Type type, Object value, T defaultValue) throws ConvertException
      转换值为指定类型 自定义转换器优先
      Type Parameters:
      T - 转换的目标类型(转换器转换到的类型)
      Parameters:
      type - 类型
      value - 值
      defaultValue - 默认值
      Returns:
      转换后的值
      Throws:
      ConvertException - 转换器不存在
    • convert

      public <T> T convert(Type type, Object value, T defaultValue, boolean isCustomFirst) throws ConvertException
      转换值为指定类型
      Type Parameters:
      T - 转换的目标类型(转换器转换到的类型)
      Parameters:
      type - 类型目标
      value - 被转换值
      defaultValue - 默认值
      isCustomFirst - 是否自定义转换器优先
      Returns:
      转换后的值
      Throws:
      ConvertException - 转换器不存在