Aqui na hora de implementar a interface Comparable na classe Titulo apareceu o mesmo erro que o do instrutor, porém me direcionou para fazer override na classe Filme, não entendi o motivo. Alguém consegue me explicar?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Aqui na hora de implementar a interface Comparable na classe Titulo apareceu o mesmo erro que o do instrutor, porém me direcionou para fazer override na classe Filme, não entendi o motivo. Alguém consegue me explicar?
Olá, Gabriel!
Entendi sua dúvida sobre o motivo de fazer o override na classe Filme ao implementar a interface Comparable na classe Titulo. Vou te explicar!
Quando estamos trabalhando com o método Collections.sort() para ordenar uma lista, ele precisa de um critério de comparação para saber como ordenar os elementos. No caso dos tipos primitivos e objetos simples, como strings, o Java já sabe como fazer a comparação. Mas quando lidamos com objetos mais complexos, como no caso de títulos de filmes, é necessário implementar a interface Comparable e definir o critério de comparação.
No exemplo que você mencionou, a classe Titulo implementa a interface Comparable. Isso significa que a classe Titulo está assinando um contrato e se comprometendo a implementar o método compareTo(), que é responsável por fazer a comparação entre dois objetos da classe Titulo.
No método compareTo(), você pode definir o critério de comparação que desejar. Por exemplo, se você quiser ordenar os títulos por ordem alfabética do nome do filme, você pode comparar os nomes dos filmes usando o método compareTo() da classe String.
No caso específico do exemplo que você mencionou, o instrutor decidiu fazer o override do método compareTo() na classe Filme, ao invés de fazer isso diretamente na classe Titulo. Isso pode ter sido uma escolha do instrutor para manter a responsabilidade de comparação dentro da classe Filme, já que o nome do filme é um atributo da classe Filme.
Em resumo, ao implementar a interface Comparable na classe Titulo, você está garantindo que a classe Titulo terá um critério de comparação definido, permitindo que o método Collections.sort() possa ordenar corretamente uma lista de objetos da classe Titulo.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!