Class AbstractConverter<T>

java.lang.Object
org.aoju.bus.core.convert.AbstractConverter<T>
All Implemented Interfaces:
Serializable, Converter<T>
Direct Known Subclasses:
ArrayConverter, AtomicBooleanConverter, AtomicIntegerArrayConverter, AtomicLongArrayConverter, AtomicReferenceConverter, BeanConverter, BooleanConverter, ByteArrayConverter, CalendarConverter, CastConverter, CharacterConverter, CharsetConverter, ClassConverter, CurrencyConverter, DateConverter, DurationConverter, EnumConverter, LocaleConverter, MapConverter, NumberConverter, OptionalConverter, PathConverter, PeriodConverter, PrimitiveConverter, ReferenceConverter, StackTraceConverter, StringConverter, TemporalConverter, TimeZoneConverter, URIConverter, URLConverter, UUIDConverter

public abstract class AbstractConverter<T> extends Object implements Converter<T>, Serializable
抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑 转换器不会抛出转换异常,转换失败时会返回null
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • AbstractConverter

      public AbstractConverter()
  • Method Details

    • convert

      public T convert(Object value, T defaultValue)
      Description copied from interface: Converter
      转换为指定类型 如果类型无法确定,将读取默认值的类型做为目标类型
      Specified by:
      convert in interface Converter<T>
      Parameters:
      value - 原始值
      defaultValue - 默认值
      Returns:
      转换后的值
    • convertQuietly

      public T convertQuietly(Object value, T defaultValue)
      不抛异常转换 当转换失败时返回默认值
      Parameters:
      value - 被转换的值
      defaultValue - 默认值
      Returns:
      转换后的值
    • convertInternal

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

      protected String convertString(Object value)
      值转为String 转换规则为:
       1、字符串类型将被强转
       2、数组将被转换为逗号分隔的字符串
       3、其它类型将调用默认的toString()方法
       
      Parameters:
      value - 值
      Returns:
      String
    • getTargetType

      public Class<T> getTargetType()
      获得此类实现类的泛型类型
      Returns:
      此类的泛型类型, 可能为null