Ajuda CAST

Olá, To recebendo a informação de erro no cast só que para mim não tem como existir esse erro. O erro que que recebendo é: “java.lang.ClassCastException : java.lang.Double cannot be cast to [Ljava.lang.Double”

O meu código é esse:

[code] ArrayList calculoValor = (ArrayList) session.createSQLQuery(“select valor from tb_fluxocaixa where id= (select MAX(id-1) from tb_fluxocaixa)”).list();

	    Double[] obj =   (Double[]) ((ArrayList) calculoValor).get(0);    
	    Double NovoValor = (Double)obj[0];  [/code]

Esse array ta dentro de um metodo que recebe por parametro um valor do tipo Double.
Tem alguma coisa de errado nesse meu código?

[quote=ari_cesar]Olá, To recebendo a informação de erro no cast só que para mim não tem como existir esse erro. O erro que que recebendo é: “java.lang.ClassCastException : java.lang.Double cannot be cast to [Ljava.lang.Double”

O meu código é esse:

[code] ArrayList calculoValor = (ArrayList) session.createSQLQuery(“select valor from tb_fluxocaixa where id= (select MAX(id-1) from tb_fluxocaixa)”).list();

	    Double[] obj =   (Double[]) ((ArrayList) calculoValor).get(0);    
	    Double NovoValor = (Double)obj[0];  [/code]

Esse array ta dentro de um metodo que recebe por parametro um valor do tipo Double.
Tem alguma coisa de errado nesse meu código?[/quote]

Olha cara, olhando assim, o erro me parece que é pq vc ta tendando fazer um casting de um Double para um array de Double[] ai vai da exceção mesmo.

E qual é a forma correta de passar o valor do tipo Double que tá dentro do meu array para um outro objeto do tipo Double?

Double obj = new Double[5]; obj[0] = (Double) ((ArrayList) calculoValor).get(0);

Assim não dá pq da erro de sintaxe e a IDE manda eu fazer CAST para Double[] .

corrigi la em cima, nao vai ter como vc usar seu array sem inicializar. Do jeito que ta ai pq vc nao cria um ArrayList de double entao?

Muito Obrigado, achei a solução! Criei um Array de double, e depois criei um objeto do tipo Double e mandei colocar o valor do array dentro desse novo objeto. O código ficou assim:

[code]
ArrayList calculoValor = (ArrayList) session.createSQLQuery(“select valor from tb_fluxocaixa where id= (select MAX(id-1) from tb_fluxocaixa)”).list();

	   //Objeto que vai fazer a transformação
	   Double[] trans = new Double[5];  
        /// Objeto recebe o valor armazenado no calculoValor
	    trans[0] =   (Double) ((ArrayList) calculoValor).get(0);    
       /// Passo o valor armazenado no objeto para um novo objeto do tipo Double chamado novoValor
	    Double novoValor = trans[0];[/code]

[quote=ari_cesar]Muito Obrigado, achei a solução! Criei um Array de double, e depois criei um objeto do tipo Double e mandei colocar o valor do array dentro desse novo objeto. O código ficou assim:

[code]
ArrayList calculoValor = (ArrayList) session.createSQLQuery(“select valor from tb_fluxocaixa where id= (select MAX(id-1) from tb_fluxocaixa)”).list();

	   //Objeto que vai fazer a transformação
	   Double[] trans = new Double[5];  
        /// Objeto recebe o valor armazenado no calculoValor
	    trans[0] =   (Double) ((ArrayList) calculoValor).get(0);    
       /// Passo o valor armazenado no objeto para um novo objeto do tipo Double chamado novoValor
	    Double novoValor = trans[0];[/code][/quote]

Blz!!! Agora edita o tópico e coloca “[Resolvido]” por favor.

Vai ajudar outras pessoas que passem pela mesma situação!