Boa tarde, outro dia criei o forum http://www.guj.com.br/posts/list/82563.java#441743 com um problema com Map.
Descobri que o problema:
Integer keyCC = associaCCusto.getLancamento().getContaCreditada().getCdReduzido();
ContaGerencial conta = centroCusto.getMapContas().get(keyCC);
if(conta==null){
conta = new ContaGerencial();
conta.setCdConta(associaCCusto.getLancamento().getContaCreditada().getCdReduzido());
conta.setNmConta(associaCCusto.getLancamento().getContaCreditada().getNmConta());
conta.setConta(associaCCusto.getLancamento().getContaCreditada());
centroCusto.getMapContas().put(keyCC, conta);
}
Integer keyCD = associaCCusto.getLancamento().getContaDebitada().getCdReduzido();
conta = centroCusto.getMapContas().get(keyCD);
if(conta==null){
conta = new ContaGerencial();
conta.setCdConta(associaCCusto.getLancamento().getContaDebitada().getCdReduzido());
conta.setNmConta(associaCCusto.getLancamento().getContaDebitada().getNmConta());
conta.setConta(associaCCusto.getLancamento().getContaDebitada());
centroCusto.getMapContas().put(keyCD, conta);
}
Como podem reparar meu ContaGerencial pode ser de dois tipos:
associaCCusto.getLancamento().getContaCreditada()
e
associaCCusto.getLancamento().getContaDebitada()
Ele “se perde” quando tenho que criar o ContaGerencial no segundo if.
então tive q fazer uma “gambi”, coloquei um if comparando as duas chaves, e criar meu ContaGerencial dentro desse if.
Talvez não seja a forma mais elegante de resolver o problema.
Alguem tem uma solução melhor?