transformação de tipos

gostaria de saber se haveria algum modo de transformar um oejeto da classe Object em um um outro tipo, tentei o seguinte codigo:

try
{
recebido = entrada.readObject();

if (recebido instanceof DadosMessageDigest)
{
recebido = (DadosMessageDigest) entrada.readObject();
this.enviaDados(processamento.messageDigest(recebido.getTexto(), recebido.getAlgoritmo()));
}
}

parece que usando o (DadosMessageDigest) você conseguiria forçar o objeto a ser de determinado tipo, mas isso não está ocorrendo…

poderiam me ajudar?

Isso se chama cast em Java.

Você diz que não está funcionando. O que não está funcionando? ClassCastException? Trava a máquina? Não acontece nada?

[quote=Edu4rd0-]gostaria de saber se haveria algum modo de transformar um oejeto da classe Object em um um outro tipo, tentei o seguinte codigo:

try
{
recebido = entrada.readObject();
				
if (recebido instanceof DadosMessageDigest)
{
recebido = (DadosMessageDigest) entrada.readObject();
this.enviaDados(processamento.messageDigest(recebido.getTexto(), recebido.getAlgoritmo()));
}
}

parece que usando o (DadosMessageDigest) você conseguiria forçar o objeto a ser de determinado tipo, mas isso não está ocorrendo…

poderiam me ajudar?[/quote]

Dá a impressão que você quer ler o mesmo dado duas vezes (recebido = entrada.readObject()), é isso mesmo? Acho que a sua intenção não é essa.

Se você sabe que o dado existe apenas uma vez, não é preciso ter a segunda linha “recebido = (DadosMessageDigest) entrada.readObject()”

Se você conseguiu colocar entrada.readObject() em recebido, e este método retorna um Objeto, imagino que o tipo de recebido seja Object, não?

então você vai conseguir fazer coisas do tipo:

recebido = (DadosMessageDigest) entrada.readObject();

Porque DadosMessageList é um Object. Entretanto, quando você fizer:

recebido.getTexto()

Você vai tentar chamar um método getTexto() na classe Object, e este método não existe. Tente algo assim:

try
{
recebido = entrada.readObject();
				
if (recebido instanceof DadosMessageDigest)
{
DadosMessageDigest outro = (DadosMessageDigest) entrada.readObject();
this.enviaDados(processamento.messageDigest(outro.getTexto(), outro.getAlgoritmo()));
}
}

Ok, pode ser muito otimizado.

[]s

valeu pessoal, acabei deixando meu codigo assim, nao funcionava pq ele nao achava os metodos getTexto() e getAlgoritmo()

recebido = entrada.readObject();

if (recebido instanceof ResultadoMessageDigest)
{
impressaoDigital.setTextoFinal(((ResultadoMessageDigest)recebido).getTextoFinal());
this.setStatus(“Resultado recebido com sucesso”);
}