Tenho um ArayList do tipo Pessoas(codigo abaixo), porem quando insiro um novo dado, ele salva o ultimo dado em cima de todos os dados restantes…
Como faço para resolver?
public class FrmCadastroCliente extends javax.swing.JFrame {
Pessoas pes1 = new Pessoas();
ArrayList pes = new ArrayList();
}
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
Pessoas pes1 = new Pessoas();
...
Imagine que o array guarda a referência do local onde o objeto está e não o objeto em si, se você adiciona sempre a mesma referência, vai ocupar todas as posições do array com a mesma informação.
Ao chamar o objeto pes1 dentro do método o escopo da variável fica restrita ao método e assim quando o método for chamado novamente irá gerar outro endereço de memória para a variável pes1, impedindo que adicione sempre a mesma informação.
Resumo: altere o escopo da variável ou adicione o objeto diretamente dentro do array.
Ex.: this.pes.add(new pessoa(cod, cpf, cidade, data, endereco, nome));