1
resposta

ArrayList grava, mas quando retorno para gravar o proximo, ele esta vazio...

Estou estudando algumas relacoes entre JForms e quando chamo estes metodos para gravar meus List, eles gravam corretamente, mas quando retorno para gravar outro item a List esta zerada sem nenhum item. E quando submeto ao debug o ele passa certinho pela classe e retorna um objeto,,, tudo ok.... mas quando vou cadastar outro a List esta vazia..... alguem poderia me ajudar, por favor.... obrigado...


import java.util.List;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class GerPes {

//    private Pessoa pes;
    private List<Pessoa> bdPes = new ArrayList<>();

    public List<Pessoa> getBdPes() {
        return bdPes;
    }

    public Pessoa cadPes(Pessoa pes) {
        if (consPesCod(pes) == null) {
            bdPes.add(pes);
            return pes;
        } else {
            return null;
        }

    }//fim cadPes

    public Pessoa consPesCod(Pessoa pes) {
        for (int i = 0; i < bdPes.size(); i++) {
            if (pes.getCpf() == bdPes.get(i).getCpf()) {
                return bdPes.get(i);
            }
        }
        return null;
    }//fim consPesCod

    public Pessoa removePesCod(Pessoa pes) {
        pes = consPesCod(pes);
        if (pes != null) {
            bdPes.remove(pes);
            return null;
        } else {
            return pes;
        }

    }//fim removePesCod

    public Pessoa atualizaPesCod(Pessoa pes) {
        for (int i = 0; i < bdPes.size(); i++) {
            if (pes.getCpf() == bdPes.get(i).getCpf()) {
                String nome = JOptionPane.showInputDialog(null, "Informe o NOVO nome", "Autalização", JOptionPane.QUESTION_MESSAGE);
                pes.setNome(nome);
                bdPes.set(i, pes);
                return bdPes.get(i);
            }
        }
        return null;
    }//fim atualizaPesCod

}//fim da classe
1 resposta

Olá, Antonio!

Pelo que entendi, você está tendo problemas com a gravação de itens em um ArrayList. Aparentemente, quando você grava um item, tudo funciona corretamente, mas quando tenta gravar outro, a lista está vazia.

Pelo código que você compartilhou, parece que o problema pode estar no método "cadPes". Ele adiciona um objeto "Pessoa" à lista "bdPes", mas antes disso, ele verifica se já existe uma pessoa com o mesmo CPF na lista. Se já existir, ele não adiciona o objeto. Isso pode estar causando o problema que você está enfrentando.

Uma solução seria remover a verificação de CPF e sempre adicionar o objeto à lista. Outra solução seria verificar se a lista está vazia antes de adicionar um objeto novo.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software