Oi, Dalton.
A resposta curta é: Sim, é totalmente válido e, em muitos casos, preferível!
Vamos analisar por que essa abordagem de "menu numérico" pode ser interessante e como ela se compara à busca por texto que a Jacqueline e a Iasmin implementaram.
1. Busca por Texto (abordagem da aula)
Nessa forma, o usuário digita "Comédia" ou "Ação".
- Vantagem: Liberdade total para o usuário.
- Desvantagem: Propensa a erros. Se o usuário digitar "Comedia" (sem acento) ou "Açao" (com erro de digitação), o sistema lança uma
IllegalArgumentException, como vimos no exemplo da "Ficção".
2. Busca por menu numérico (sua sugestão)
O usuário escolhe uma opção de uma lista (1 para Comédia, 2 para Ação).
- Vantagem: Segurança. Você restringe as opções ao que o sistema realmente conhece. Não há risco de erros de digitação ou acentuação.
- Desvantagem: Se a lista de categorias crescer muito (ex: 50 gêneros), o menu fica visualmente poluído.
Como implementar de forma dinâmica:
Em vez de usar um switch-case gigante no código principal, podemos usar o próprio Enum Categoria para gerar esse menu de forma dinâmica. Assim, se você adicionar um novo gênero no futuro, o menu se atualiza sozinho.
Passo 1: Exibir o Menu Dinâmico
Podemos percorrer os valores do Enum:
private void buscarSeriesPorCategoria() {
System.out.println("Escolha uma categoria pelo número:");
Categoria[] categorias = Categoria.values();
for (int i = 0; i < categorias.length; i++) {
System.out.println((i + 1) + " - " + categorias[i]);
}
var escolha = leitura.nextInt();
leitura.nextLine(); // Limpa o buffer
if (escolha > 0 && escolha <= categorias.length) {
Categoria categoriaEscolhida = categorias[escolha - 1];
List<Serie> series = repositorio.findByGenero(categoriaEscolhida);
// ... imprimir resultados
} else {
System.out.println("Opção inválida!");
}
}
Por que isso é melhor?
- Sem erros de string: Você não precisa mais do método
fromPortugues ou se preocupar com maiúsculas/minúsculas. - Manutenção facilitada: Se amanhã você adicionar
TERROR ao Enum Categoria, o for acima já vai mostrar a opção automaticamente no console.
Espero ter ajudado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!