1
resposta

[Dúvida] Dúvida sobre acesso de itens da lista sem ser pelo índice

Qual seria o melhor modo de verificar se seria um filme sem o instanceof? como seria pra acessar, por exemplo, um determinado filme na lista de titulos além de ser pelo índice?

1 resposta

Eu acho que a melhor maneira seria evitar usar o instanceof ou qualquer outra abordagem baseada nele, vou colocar um alternativa abaixo; o conceito de generics nasceu justamente pra isso, a melhor forma de lidar com isso é ter uma super classe ou uma interface que expressa as duas "classes" de objetos, sejam filmes ou séries e processar eles polimorficamente.

Segue uma alternativa a instanceof:

public boolean isFilme(Object obj) {
    return obj != null && obj.getClass().equals(Filme.class);
}

Sobre não usar o índice tu vai precisar ter algum outro tipo de ID, para poder varrer a lista algo como:

for (Filme filme : listaFilmes) {
    if (filme.getId() == idDesejado) {
        filmeDesejado = filme;
        break;
    }
}

Mas essas duas abordagens eu acho que são incorretas pra esse caso, é mais uma questão de modelar melhor o problema, usar herança ou interfaces acho que é uma solução mais apropriada.