Qual a diferença de fazer o cast assim.
Long codigo = Long.parseLong(valor);E assim
Fornecedor fornecedor = (Fornecedor) objeto;Qual a diferença de fazer o cast assim.
Long codigo = Long.parseLong(valor);E assim
Fornecedor fornecedor = (Fornecedor) objeto;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