Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença de cast

Qual a diferença de fazer o cast assim.

Long codigo = Long.parseLong(valor);

E assim

Fornecedor fornecedor = (Fornecedor) objeto;
2 respostas
solução!

Olá.

O primeiro caso não é cast, mas sim a utilização de um método de conversão de uma string para um valor do tipo long, no caso. Se a string passada no método parseLong() não for algo que possa ser convertido pro tipo long, o sistema cairá numa exception chamada NumberFormatException. Você pode colocar isso dentro de um try/catch e utilizar um catch específico pra tratar essa exceção, ficando uma solução mais elegante.

No segundo caso, de fato é um cast. O problema dessa forma de conversão é que ela é totalmente forçada. O cast força a conversão do que vier depois para o tipo especificado. Isso pode trazer inúmeros problemas, pois não há garantias de que seja possível converter o valor e fica difícil de tratar casos de cast, por esta questão inclusive que não é muito recomendável utilizar. Ou seja, utilizar cast é ter certeza que determinado valor pode mudar de tipo e continuará funcionando normalmente, tipo quando você tem uma string "1" e faz o cast pra inteiro, porém note que essa "certeza" é relativa.

obrigado