[RESOLVIDO] Será pilha de execução?

Membros,

Tenho a seguinte estrutura abaixo:

[code]
Boolean temList = Boolean.FALSE;

for (Patrimonio p : patrimonios) {

if (p.getId() == numeroPatrimonio)
temList = Boolean.TRUE;
}
.[/code]

Quando a condição é aceita, ou melhor, verdadeira, temList deveria se tornar TRUE e não está ocorrendo… Tem alguma coisa a ver com a pilha de execução ?

Grato.

:slight_smile:

Eii, sei que é uma pergunta boba mas as vezes, você testou se durante o loop a execução esta entrando no if??

Ou ainda, se não entrar no if vc configura temList como false?
Se vc encontrou, deveria dar um break no for.

Vc está usando alguma versão anterior à 1.5 do Java? Se não estiver, vc pode aproveitar o autobox e fazer:

Booleam temList = false;

Tbm não entendi pq vc não usa o primitivo boolean ao invés da classe Boolean.

[]'s

p.getId e numeroPatrimonio são int? ou são Integer?

Olá pmlm !

É um Wrapper java.lang.Integer. O motivo de usar o wrapper’s é pelo uso do hibernate, onde o mesmo fica mais maleável com o uso de objetos e não com os tipos primitivos. Usava primitivos, mas aderi a uma certa padronização.

cintiafzk, verifiquei sim, através de Debug e estava entrado na condição normalmente só que o valor de temList não estava sendo alterado.

davidbuzatto, poderia até usar o break, mas não mudaria o sentido da coisa n… já que sempre iria-se olhar a lista toda e identificar até mais de um patrimônio na lista…

Bom, a iteração do foreach na classe de negócio e o resultado foi o esperado.

  if (!negocio.pesquisarPatrimonioLista(numeroPatrimonio, patrimonios)) {
}

Desconfio que seja alguma coisa relacionada a pilha de execução… vou dar uma pesquisada quando chegar em casa no livro da Kate Sierra para concluir alguma coisa mais convincente…

Obrigado a todos…
:slight_smile: