2010-02-19 9 views
5

necesito para convertir variedad de objetos en un largo/Entero .. El problema es que esos objetos son a veces, a veces BigIntegers BigDecimals e incluso a veces algo más. ¿Hay buenas bibliotecas para lograr esto?biblioteca de Java para convertir objetos a numérico (entero, largo etc ..)

por ejemplo ...

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

Respuesta

2

Para el caso de BigInteger y BigDecimal sólo puede emitir ese (y todas las clases de envoltura primitivas numéricos también) a Number y obtener la longValue() (tenga cuidado al desbordarse el rango de long ').

Si son otra cosa, entonces se necesitaría algunas reglas sobre cómo convertir todos modos. ¿Qué "otra cosa" tienes en mente?

10

se puede llegar muy lejos con Number:

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

La clase java.lang.Number y clases relacionadas hacen la mayor parte de este trabajo muy bien. Si necesita más soporte para manejar valores nulos y primitivos sin escribir cheques y condicionales, consulte las bibliotecas de Apache Commons-Lang, específicamente NumberUtil.class. Estas son bibliotecas maduras, comúnmente usadas y bien documentadas.