Pessoal,
Como faço para converter um Long para um tipo que eu criei?
Obrigado.
Conversão de tipos
5 Respostas
Depende. Como é o tal tipo que você criou?
totalmente vaga essa pergunta heheh…
em todo caso vc pode passar o parametro Long na criação desse seu “Objeto”…
Deixa eu me explicar melhor:
Eu tenho duas classes Compra e Corretora:
public abstract class Corretora {
private Long id;
private String nome;
private Situacao situacao;
}
public abstract class Compra {
private Long id;
private Corretora corretora;
}
Agora eu preciso, na tela de Compras, recuperar automaticamente a corretora ativa (atributo situacao).
Para resolver isso eu tenho uma classe CompraDAO que possui um método para recuperar o id da corretora ativa:
public Long recuperaIdCorretoraAtiva() throws PlcException {
Session sess = this.getSession();
return (Long)sess.createQuery(" select obj.id from CorretoraEntity obj where obj.situacao=‘S’ ")
.uniqueResult();
}
Agora na minha classe CompraAction onde eu vou executar o método recuperaIdCorretoraAtiva() ocorre o erro na linha "compra.setCorretora(id);
", pois o id é Long, mas o esperado seria Corretora.
@Override
protected boolean gravaSimplesAntes() throws PlcException {
Compra compra = (Compra)this.entidadePlc;
IAppFacade facadeImpl = (IAppFacade)this.getServiceFacade(IAppFacade.class);
Long id = facadeImpl.recuperaIdCorretoraSimulador();
compra.setCorretora(id);
return super.gravaSimplesAntes();
}
Obrigado pela ajuda nessa minha dúvida de iniciante.
Vc tem que setar uma instancia de corretora em compra.setCorretora():
Corretora corretora = new Corretora();
//corretora.setId...
//seta os atributos de corretora e:
compra.setCorretora(corretora);
Ok…
Indo por esse caminho, ficou dessa maneira:
IAppFacade facadeImpl = (IAppFacade)this.getServiceFacade(IAppFacade.class);
Long id = facadeImpl.recuperaIdCorretoraSimulador();
Corretora corretora = new Corretora(corretora);
corretora.setId(id);
compra.setCorretora(corretora);
Porém, está dando o seguinte erro “Cannot instantiate the type Corretora” em “Corretora corretora = new Corretora(corretora);”