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