List replicando o ultimo valor da lista(RESOLVIDO)

Pessoal criei um método do tipo List que retorna objetos da minha classe Produto, até aí tudo bem ele retorna normal.
Obs.: eu to pegando os valores da tabela produtos do mysql e guardando na lista do tipo Produto e estou listando em uma tabela JTable do swing.

public List listarProduto(){

    **Connection** con;
    **List**<**Produto**> produtos = new **ArrayList**<>();
    **Produto** produto = new **Produto**();
    **ResultSet** rs;
    
    **try** {
        con = conectar();
        **String** sql = "select * from produtos";
        **PreparedStatement** pst = con.prepareStatement(sql);
        rs = pst.executeQuery();
        
        **while**(rs.next()){
            produto.setCodigo(rs.getInt("cod_produto"));
            produto.setNome(rs.getString("nome"));
            produto.setCategoria(rs.getString("categoria"));
            produto.setPeso(rs.getFloat("peso"));
            produto.setUnidade(rs.getInt("unidade"));
            produto.setValor(rs.getFloat("preco"));
            produtos.add(produto);
        }
    } **catch** (SQLException ex) {
        Logger.getLogger(ModuloConexao.class.getName()).log(Level.SEVERE, null, ex);
    }
    
    **return** produtos;
}

Só que quando eu percorro a lista parece que ele replica o último objeto da lista.

public void mostrarDados(JTable tblProdutos){

    **ModuloConexao** mod = new **ModuloConexao**();
    **DefaultTableModel** tabelaMod = (DefaultTableModel) **tblProdutos**.**getModel**();
    
    **for**(Produto produto: mod.listarProduto()){
    tabelaMod.addRow(new Object[]{
    produto.getCodigo(),
    produto.getNome(),
    produto.getCategoria(),
    produto.getPeso(),
    produto.getUnidade(),
    produto.getValor()
    });
    }
}

Já tentei percorrer a lista de várias outras maneiras mas sempre replica.

Crie uma nova instância do produto e depois adicione-o a lista. Algo assim:

        while(rs.next()){
            produto = new Produto();
            produto.setCodigo(rs.getInt("cod_produto"));
            produto.setNome(rs.getString("nome"));
            produto.setCategoria(rs.getString("categoria"));
            produto.setPeso(rs.getFloat("peso"));
            produto.setUnidade(rs.getInt("unidade"));
            produto.setValor(rs.getFloat("preco"));

            produtos.add(produto);
        }
1 curtida

Vlw! era isso mesmo.:smile::smile: