3
respostas

Lista episódiosTemporadas está vazia

O meu código da classe Principal:

package br.com.alura.screenmatch.principal;

import br.com.alura.screenmatch.model.DadosEpisodios;
import br.com.alura.screenmatch.model.DadosSerie;
import br.com.alura.screenmatch.model.DadosTemporada;
import br.com.alura.screenmatch.service.ConsumoAPI;
import br.com.alura.screenmatch.service.ConverteDados;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class Principal {
    private Scanner leitura = new Scanner(System.in);
    private final String ENDERECO = "https://www.omdbapi.com/?t=";
    private final String API_KEY = "&apikey=6f3665b1";
    private final String TEMPORADA = "&season=";
    @Autowired
    private List<DadosEpisodios> episodiosTemporadas = new ArrayList<>();
    @Autowired
    private List<DadosTemporada> temporadas = new ArrayList<>();
    private ConverteDados conversor = new ConverteDados();
    private ConsumoAPI consumoAPI = new ConsumoAPI();

    public void exibeMenu() {
        System.out.println("Qual o título que você deseja encontrar?");
        String nomeSerie = leitura.nextLine();
        var json = consumoAPI.obterDados(ENDERECO + nomeSerie.replace(" ", "+").toLowerCase() + API_KEY);
        System.out.println(json);
        DadosSerie dados = conversor.obterDados(json, DadosSerie.class);
        System.out.println(dados);


        for (int i = 0; i <= dados.totalTemporadas(); i++) {
            json = consumoAPI.obterDados(ENDERECO + nomeSerie.replace(" ", "+").toLowerCase() + TEMPORADA + i + API_KEY);
            DadosTemporada dadosTemporada = conversor.obterDados(json, DadosTemporada.class);
            temporadas.add(dadosTemporada);
        }
        temporadas.forEach(System.out::println);

//A parte do código que está dando problema
        for (int i = 0; i < dados.totalTemporadas(); i++) {
            episodiosTemporadas = temporadas.get(i).episodios();
            for (int j = 0; j < episodiosTemporadas.size(); j++) {
                System.out.println(episodiosTemporadas.get(j).titulo());
            }
        }
    }
}

Ta vazio

3 respostas

Olá, Frederico!

Pelo que entendi, você está tendo problemas com a lista episodiosTemporadas que parece estar vazia. Isso pode ocorrer se a lista de episódios para uma determinada temporada estiver vazia ou não for inicializada corretamente.

Aqui estão algumas coisas que você pode verificar:

Inicialização da lista: Certifique-se de que a lista de episódios para cada temporada está sendo inicializada corretamente. Se a lista não for inicializada, tentar acessá-la resultará em um NullPointerException. Preenchimento da lista: Verifique se a lista de episódios está sendo preenchida corretamente para cada temporada. Se a lista estiver vazia, tentar acessar um elemento resultará em um IndexOutOfBoundsException. Verificação antes do acesso: Antes de acessar um elemento da lista, verifique se a lista não está vazia. Você pode fazer isso usando o método isEmpty() da interface List em Java. Este método retorna verdadeiro se a lista estiver vazia (não tiver elementos) e falso caso contrário.

Espero que isso ajude! Se você tiver mais perguntas, fique à vontade para perguntar.

Algumas considerações adicionais:

  • Inicialização da lista de episódios por temporada: Certifique-se de que a lista de episódios para cada temporada está sendo inicializada corretamente dentro do objeto DadosTemporada. Se não estiver sendo inicializada ou se estiver sendo inicializada como uma lista vazia, isso pode resultar em uma lista vazia quando você tentar acessá-la na classe Principal.

  • Preenchimento da lista de episódios: Verifique se o método episodios() dentro do objeto DadosTemporada está retornando uma lista preenchida corretamente. Se este método não estiver recuperando os episódios corretamente da fonte de dados ou se não estiver populando a lista corretamente, isso pode resultar em uma lista vazia.

  • Verificação antes do acesso: Antes de acessar os episódios de uma temporada específica, verifique se a lista de episódios para essa temporada não está vazia. Isso pode ser feito usando o método isEmpty() ou verificando se a lista não é nula.

Espero ter contribuído adicionalmente

não funcionou