Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Qual a forma correta?

Resolvemos a questão das referencias na aula usando Instance.of e foi dito que não é a forma recomendada. Tendo isso em mente, qual seria a forma ideal de tratar esse problema, antes ou depois da Lista de Títulos já estar criada?

1 resposta
solução!

Olá Jonas, tudo bem?

A forma ideal de lidar com essa situação seria através do uso de polimorfismo, um dos pilares da programação orientada a objetos. No seu caso, como você está lidando com uma lista de títulos que podem ser filmes ou séries, o ideal seria ter um método na classe pai (neste caso, a classe Título) que possa ser sobrescrito nas classes filhas (Filme e Série).

Por exemplo, você poderia ter na classe Título um método chamado exibirClassificacao(). Este método não faria nada na classe Título, mas seria sobrescrito na classe Filme para exibir a classificação do filme. Assim, você poderia percorrer a lista de títulos e chamar o método exibirClassificacao() para cada item, sem precisar verificar se o item é um filme ou uma série.

Aqui está um exemplo de como ficariam as classes:

public class Titulo {
    public void exibirClassificacao() {
        // não faz nada
    }
}

public class Filme extends Titulo {
    private int classificacao;

    public Filme(int classificacao) {
        this.classificacao = classificacao;
    }

    @Override
    public void exibirClassificacao() {
        System.out.println("Classificação: " + this.classificacao);
    }
}

E aqui está como você poderia percorrer a lista:

for (Titulo item: lista){
    item.exibirClassificacao();
}

Dessa forma, você não precisa se preocupar se o item é um filme ou uma série, pois o polimorfismo garante que o método correto será chamado para cada tipo de objeto.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.