Bug em estrutura if?

2 respostas
lcn.andre
Tenho a seguinte estrutura:
private void filtraLista() {
        Integer tipo;

        if (saida.isSelected()) {
            tipo = 1;
        } else {
            tipo = 0;
        }
        tipos.clear();

        for (TipoOperacao tipoOperacao : tiposOperacao) {
            if (tipoOperacao.getTipo() != null) {
                if (tipoOperacao.getTipo().equals(tipo)) {
                    if (tipoOperacao.getCfop().replace(".", "").startsWith(edFiltro.getText())) {
                        if (!tipos.contains(tipoOperacao)) {
                            tipos.add(tipoOperacao);
                        }
                    } else if (tipoOperacao.getDescricaoCadastro().startsWith(edFiltro.getText().toUpperCase())) {
                        if (!tipos.contains(tipoOperacao)) {
                            tipos.add(tipoOperacao);
                        }
                    }
                }
            }
        }
        tabelaTipos.getSelectionModel().setSelectionInterval(0, 0);
    }
Acontece que quando
if (tipoOperacao.getTipo().equals(tipo))
retorna false, ao invés de ele voltar para o começo do loop outra vez, ele executa o trecho:
if (!tipos.contains(tipoOperacao)) {
                            tipos.add(tipoOperacao);
                        }

Alguém pode me dizer o que estou fazendo de errado ou se isso é um bug mesmo?

2 Respostas

rdmardegam

Amigo, provavel que esteja retornando verdadeiro isso sim.

Esse bug não existe.

Tente ir debugando com calma e ver os dados que estao sendo comparados.

Se for o caso, no propio debug mude os valores dos atributos para ver oque acontece quando a expressao for verdadeira e quando for falsa

lcn.andre

Eu já fiz e debug e foi exatamente por isso que criei o post aqui. Veja a seguencia:



Até a terceira imagem está tudo certo, mas depois que o if mostrado retorna falso, ele pula para dentro do else if que está abaixo dele. Como assim? :shock:

Criado 17 de junho de 2010
Ultima resposta 17 de jun. de 2010
Respostas 2
Participantes 2