将对象转换为数字(整数、长整型等)的Java库

5

我需要将对象数组转换为Long/Integer。问题在于这些对象有时是BigIntegers,有时是BigDecimals,有时甚至是其他类型。是否有任何好的库可以实现这一点?

例如...

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

12

使用 Number 可以实现很多功能:

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

3

对于BigIntegerBigDecimal的情况,您可以将它们(以及所有数值原始包装类)转换为Number并获取longValue()(请注意当long范围溢出时要小心)。

如果它们属于其他类型,则需要规则来进行转换。您想要转换的是什么“其他类型”?


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接