2010-02-19 52 views
5

我需要将对象数组转换为长整型。问题是那些对象有时是BigIntegers,有时是BigDecimals,有时甚至是其他东西。有没有什么好的库来完成这个?用于将对象转换为数字(整数,长等)的Java库

例如...

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

回答

2

对于BigInteger情况和BigDecimal你可以施放该(和所有的数字原始包装类为好)至Number并获得longValue()(溢出时要小心范围long'虽然)。

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

10

你可以得到Number很远:

​​
0

的java.lang.Number中类和相关类做最这份工作就好了。如果您需要更多的支持来处理空值和原语而无需编写检查和条件,请查看Apache Commons-Lang库,特别是NumberUtil.class。这些都是成熟的,常用的,有详细记录的图书馆。