es correcto hacer casting con Number ?

Buenas

Tengo una duda al momento de realizar un casting de un Object, necesito convertirlo a long, vi que se puede hacer de la siguiente forma utilizando Number:

 
 long val = ((Number) item[3]).longValue();

o lo correcto seria algo como esto:

 
Long.parseLong(item[3].toString());

mi duda es saber que es correcto y el porque, agradezco la ayuda.

saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Espero que te ayude mi

Espero que te ayude mi respuesta, aun que ya paso algo de tiempo

Lo correcto es hacer el cast, puesto que si el item[3] ya es un Long, te ahorras instrucciones, pues cuando ejecutas longValue() regresa el valor interno y no hace ningun calculo adicional. Si es un Byte, Integer, Short, es basicamente lo mismo.

En cambio si parseas, primero, estas construyendo una cadena y despues parsear dicho valor de una cadena

Si se da el caso de tener otros tipos como BigDecimal, BigInteger, Double o Float, estarias perdiendo informacion, pues se truncaria. Y dado el caso el parseLong fallaria