Class NumberConverter

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

public class NumberConverter extends AbstractConverter
数字转换器 支持类型为:
  • java.lang.Byte
  • java.lang.Short
  • java.lang.Integer
  • java.util.concurrent.atomic.AtomicInteger
  • java.lang.Long
  • java.util.concurrent.atomic.AtomicLong
  • java.lang.Float
  • java.lang.Double
  • java.math.BigDecimal
  • java.math.BigInteger
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

  • Constructor Details

    • NumberConverter

      public NumberConverter()
  • Method Details

    • convert

      protected static Number convert(Object value, Class<? extends Number> targetType, Function<Object,String> toStrFunc)
      转换对象为数字,支持的对象包括:
      • Number对象
      • Boolean
      • byte[]
      • String
      Parameters:
      value - 对象值
      targetType - 目标的数字类型
      toStrFunc - 转换为字符串的函数
      Returns:
      转换后的数字
    • convertInternal

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

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