Criar uma BadCastException!

7 respostas
J

Ola galera, to fazendo um trabalho da facul, onde a professora pediu pra
criar um campo de texto num JFrame que na saida mostre o erro de uma BadCastException.
Só que eu to tentando fazer um array de objetos receber um numero inteiro numa posição
e imprimir como String o valor dessa posição. Deveria aparecer a exceção, o que está errado?

Valeu galera, obrigado:

try {

Object[] arrayDeObjetos = new Object[100];

int posicao = 0;

Object objeto;

int num = 4;

objeto = num;

arrayDeObjetos[posicao] = objeto;

textoDeErro.setText((String)arrayDeObjetos[posicao]);

}catch  (Exception e) {

textoDeErro.setText(e.toString());

}

7 Respostas

JoaoBluSCBR

Exemplo clássico na documentação do java

Object x = new Integer(0);
System.out.println((String)x);

Então, transferindo para o teu:

try { 
Object objeto = new Integer(4); 
textoDeErro.setText((String)objeto); 
}catch (Exception e) { 
textoDeErro.setText(e.toString()); 
}
J

Valeu cara…
Mais tipo… tem q fazer de propósito, o codigo dar erro.
E dai mostrar no textoDeErro.

Obrigado hein

JoaoBluSCBR

Tá!!! Mas não é isso que acontece???

A minha sugestão só difere da tua pela retirada daquele array que nem sei por que foi criado.

Mas não testei. Não dá o erro que você espera?

J

Pior q naum dá erro mano! hauahaauaa
Isso tava acontecendo comigo com o array!

Valeu

JoaoBluSCBR

Bem, eu criei um JFrame com um campo texto e um botao

no código do botão coloquei esse código

try { Object objeto = new Integer(4); tfEntrada.setText((String) objeto); } catch (Exception e) { tfEntrada.setText(e.toString()); }

E no campo apareceu a informacao de BadCast

Qual a idéia, vc quer que o cara digite algo que cause esse erro, em tempo de execução?

Basta fazer assim:

try { Object objeto = new Integer(tfEntrada.getText()); tfEntrada.setText((String) objeto); } catch (Exception e) { tfEntrada.setText(e.toString()); }

E digitar no campo um número.

JoaoBluSCBR

Dá o erro sim, dos dois jeitos que eu falei.

E é o erro que você quer.

Só se no topo da tua classe você usou um Throw, algo que está lançando o erro. Sei lá.

Anexei a minha classe básica. Roda aí e vê se não aparece o erro certo.

J

Valeu amigão!
Deus abençoe!
Brigadão hein! :smiley:

Criado 19 de agosto de 2011
Ultima resposta 19 de ago. de 2011
Respostas 7
Participantes 2