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?
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!