transformação de tipos

4 respostas
E

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?

4 Respostas

_fs

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?

T

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?

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()

pcalcado

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

E

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);

}
Criado 24 de novembro de 2004
Ultima resposta 25 de nov. de 2004
Respostas 4
Participantes 4