Class AbstractConverter

java.lang.Object
org.miaixz.bus.core.convert.AbstractConverter
All Implemented Interfaces:
Serializable, Converter
Direct Known Subclasses:
ArrayConverter, AtomicBooleanConverter, AtomicIntegerArrayConverter, AtomicLongArrayConverter, AtomicReferenceConverter, BooleanConverter, CalendarConverter, CastConverter, CharacterConverter, CharsetConverter, ClassConverter, CurrencyConverter, DateConverter, DurationConverter, EnumConverter, LocaleConverter, NumberConverter, OptConverter, OptionalConverter, PathConverter, PeriodConverter, PrimitiveConverter, RecordConverter, ReferenceConverter, StackTraceElementConverter, StringConverter, TemporalAccessorConverter, TimeZoneConverter, URIConverter, URLConverter, UUIDConverter, XMLGregorianCalendarConverter, ZoneIdConverter

public abstract class AbstractConverter extends Object implements Converter, Serializable
抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑 转换器不会抛出转换异常,转换失败时会返回null 抽象转换器的默认逻辑不适用于有泛型参数的对象,如Map、Collection、Entry等。通用逻辑包括:
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • AbstractConverter

      public AbstractConverter()
  • 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 - 转换无法正常完成或转换异常时抛出此异常
    • convertInternal

      protected abstract Object convertInternal(Class<?> targetClass, Object value)
      内部转换器,被 convert(Type, Object) 调用,实现基本转换逻辑 内部转换器转换后如果转换失败可以做如下操作,处理结果都为返回默认值:
       1、返回null
       2、抛出一个RuntimeException异常
       
      Parameters:
      targetClass - 目标类型
      value - 值
      Returns:
      转换后的类型
    • convertToString

      protected String convertToString(Object value)
      值转为String,用于内部转换中需要使用String中转的情况 转换规则为:
       1、字符串类型将被强转
       2、数组将被转换为逗号分隔的字符串
       3、其它类型将调用默认的toString()方法
       
      Parameters:
      value - 值
      Returns:
      String