1
resposta

Erro de java lang iterable


package br.com.loja.virtual.jdbc;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import br.com.loja.virtual.jdbc.dao.CategoriaDAO;
import br.com.loja.virtual.jdbc.dao.ProdutoDAO;
import br.com.loja.virtual.jdbc.modelo.Categoria;
import br.com.loja.virtual.jdbc.modelo.Produto;

public class TestaListagemDeCategorias {
    public static void main(String[] args) throws SQLException {

        try(Connection connection = new ConnectionFactory().conectaDatabase()){
            CategoriaDAO categoriaDao = new CategoriaDAO(connection);
            List<Categoria> listaDeCategorias = categoriaDao.listarCategoriasComProdutos();
            listaDeCategorias.stream().forEach(ct -> {
                System.out.println(ct.getNome());
                for(Produto produto : ct.getProdutos()) {
                    System.out.println(ct.getNome() + " - " + produto.getNome());
                }
            });
        }
    }
}

ao rodar está dando o seguinte erro:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: Can only iterate over an array or an instance of java.lang.Iterable

at br.com.loja.virtual.jdbc.TestaListagemDeCategorias.main(TestaListagemDeCategorias.java:20)

alguem sabe o que pode ser ?

1 resposta

Oi Felipe, envia o código da classe CategoriaDAO.java e Categoria.java, por favor

Tenho a impressão que você não está retornando

    private List<Produto> produtos = new ArrayList<Produto>();

na Categoria.java

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