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

Exceção - java.lang.ClassCastException

ESTA ME RETORNANDO UMA EXCEÇÃO:

Exception in thread "main" java.lang.ClassCastException: br.com.bytebank.banco.modelo.Cliente cannot be cast to br.com.bytebank.banco.modelo.ContaCorrente at br.com.bytebank.banco.teste.io.TesteDesserializacao.main(TesteDesserializacao.java:14)

O CÓDIGO É ESSE ABAIXO:

package br.com.bytebank.banco.teste.io;

import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream;

import br.com.bytebank.banco.modelo.ContaCorrente;

public class TesteDesserializacao {

public static void main(String[] args) throws ClassNotFoundException, IOException {

    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("cc.bin"));
    ContaCorrente cc = (ContaCorrente)ois.readObject();
    ois.close();
    System.out.println(cc.getSaldo());
    System.out.println(cc.getTitular());

}

}

7 respostas

Olá Gisele, o que está acontecendo ai, é que não é possível fazer o casting desses objetos Cliente -> ContaCorrente.

Você poderia nos mostrar essa classe. TesteDesserializacao.java pois ela ta alegando algo na linha 14

A classe TesteDesserializacao é esse que postei na pergunta. a linha 14 é :

ContaCorrente cc = (ContaCorrente)ois.readObject();

Não entendi o que o meu cliente tem a ver com esse código que eu criei.

solução!

Oi Gisele,

O erro que está acontecendo é o que o Állex comentou mesmo: na hora da execução do código, o casting foi tentado de um objeto do tipo Cliente para uma variável do tipo ContaCorrente. Ou seja, o retorno do método ois.readObject() está retornando um objeto do tipo Cliente durante a execução do código.

Agora, pra entender o porque, temos que saber como está o seu arquivo cc.bin. Como conseguiu ele ou como ele foi criado.

"main" java.lang.ClassCastException: br.com.bytebank.banco.modelo.Cliente cannot be cast to br.com.bytebank.banco.modelo.ContaCorrente at ...

Essa é a primeira exception que é lançada? porque o problema que eu vejo nesse erro é não conseguir fazer o Casting entre as Classes.

Obrigada Alex e Anna, realmente o arquivo cc.bin estava errado quando eu criei a Serialização eu dei um oos.writeObject(cliente); quando deveria ter colocado em conta corrente.

Prazer em ter ajudado.

Que bom que deu certo! Fico feliz! :)