【问题标题】:Java library for converting Object to numeric (Integer, Long etc..)用于将对象转换为数字(整数、长整数等)的 Java 库
【发布时间】:2011-01-18 18:15:13
【问题描述】:

我需要将对象数组转换为 Long/Integer。问题是这些对象有时是 BigIntegers,有时是 BigDecimals,有时甚至是其他东西。有没有什么好的库可以做到这一点?

例如...

for (Object[] o : result) {
    Long l = SomeClass.convertToLong(o[0]);
    Integer i = SomeClass.convertToInt(o[1]);
}

【问题讨论】:

    标签: java type-conversion


    【解决方案1】:

    对于BigIntegerBigDecimal 的情况,您可以将其(以及所有数字原始包装类)转换为Number 并获取longValue()(在溢出long 的范围时要小心'虽然)。

    如果它们是其他东西,那么无论如何您都需要一些关于如何转换它的规则。你有什么“其他”想法?

    【讨论】:

      【解决方案2】:

      Number 可以让您走得更远:

      Long l = ((Number) object).longValue();
      Integer i = ((Number) object).intValue();
      

      【讨论】:

        【解决方案3】:

        java.lang.Number 类和相关类可以很好地完成大部分工作。如果您需要更多支持来处理空值和原语而不编写检查和条件,请查看 Apache Commons-Lang 库,特别是 NumberUtil.class。这些是成熟的、常用的和有据可查的库。

        【讨论】:

          猜你喜欢
          • 2011-10-05
          • 1970-01-01
          • 1970-01-01
          • 2019-01-09
          • 1970-01-01
          • 2012-05-31
          • 2016-02-04
          • 2011-05-30
          • 2018-05-02
          相关资源
          最近更新 更多