Casting

Pessoal estou realizando um cast do resultado de uma query, onde possuo colunas do tipo Varchar, Long tudo isso para um ArrayList

Fazendo o cast dessa maneira não tenho nenhum problema, o que vier ele converte :slight_smile:

	String.valueOf(registro[1])

Fazendo o cast da maneixa abaixo, quando recebo um valor Number ele me da erro de conversão BigDecimal para String

	((String)linha[1])

Pq isso ocorre? Qual a maneira correta de fazer esse cast?

porque o String.valueOf () convert seu number (isso é conversão).
agora fazendo (cast), vc tah especificando o tipo do objeto retornado, ai no caso vc vai estar dizendo que o objeto é um String, mas na verdade é um int ou double

Esse erro ocorre porque valueOf(Obj) não é um cast.

Ele na verdade tá chamando o toString() do Obj

Acostume-se a ler a API:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#valueOf(java.lang.Object)