Erro na ArrayList [RESOLVIDO]

Ainda sou iniciante na linguagem Java e estou encontrando uma dificuldade.
Vou colocar o código, caso não entendem me fale.

O erro está na primeira e segunda linhas, mas não consigo identificar:
import model.ModelProduto;

public ArrayList retornarListaProdutoDao() {
ArrayList listaModelProduto = ArrayList < > ();
ModelProduto modelProduto = new ModelProduto();
try {
this.conectar();
this.executarSQL(“SELECT”
+ “pk_id_produto,”
+ “pro_nome,”
+ “pro_valor,”
+ “pro_estoque,”
+ “FROM tbl_produto;”);

        while (this.getResultSet().next()) {
            modelProduto = new ModelProduto();
            modelProduto.setIdProduto(this.getResultSet().getInt(1));
            modelProduto.setProNome(this.getResultSet().getString(2));
            modelProduto.setProValor(this.getResultSet().getDouble(3));
            modelProduto.setProEstoque(this.getResultSet().getInt(4));
            listaModelProduto.add(modelProduto);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        this.fecharConexao();
    }
    return listaModelProduto;
}

Para criar um objeto no Java, você deve usar a palavra reservada new, veja um exemplo abaixo.

ArrayList<Object> listaUm = new ArrayList<Object>(); 
ArrayList<Object> listaDois = new ArrayList();

OBS. 1: NA DECLARAÇÃO DO ARRAYLIST VOCÊ DEVE INFORMAR O TIPO DO OBJETO.
OBS. 2: AS DUAS SINTAXES ACIMA SÃO VALIDAS.

Outro ponto importante a se destacar é que para usar o ArrayList você deve importar o mesmo da biblioteca util, segue abaixo um exemplo.

import java.util.ArrayList;

Uma observação, veja!
Se você já criou um abjeto modelProduto do tipo ModelProduto

não há necessidades de criar o mesmo objeto outra vez (enquanto while for true), como você fez aqui:

Uma boa saída seria:

ModelProduto modelProduto;
modelProduto = new ModelProduto();

Abraço!

Claro que há a necessidade, se ele não instanciar um novo objeto dentro do laço, ela só estará alterando as propriedades do mesmo objeto e sempre adicionando o mesmo objeto na lista.
Tem que instanciar um novo objeto sim, setar as propriedades dele e inserir na lista.

2 curtidas

Obrigado pela ajuda, consegui resolver o problema.

Verdade, faz sentido, você está certo, obrigado!
(dei até uma olhada em uns códigos velhos aqui :joy:)

Correção.: Não precisa criar o objeto fora, dentro while já resolve.