Edu4rd0
#1
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?
_fs
#2
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?
thingol
#3
[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
Edu4rd0
#5
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”);
}