1
resposta

Dúvida referente ao método implementado

Na aula, foi implementado a interface Comparable, e foi sobrescrito o método compareTo. Fiquei com dúvida na parte, como o compareTo da classe Titulo é chamado ? Pois o método não chega a ser chamado no meu Main

1 resposta

Oi Igor! Tudo joia?

O que acontece é que, mesmo que você não veja o método sendo chamado diretamente no seu Main, ele é utilizado internamente pelo método Collections.sort().

Quando você chama Collections.sort(lista), o Java precisa de um critério para ordenar os objetos dentro da lista. É aí que entra a interface Comparable e o método compareTo. Quando a classe Titulo implementa Comparable<Titulo>, ela está fornecendo a lógica de comparação para que o método sort possa organizar os objetos.

Por exemplo, se você tem uma lista de objetos Titulo e deseja ordená-los alfabeticamente pelo nome, você implementaria o método compareTo de forma que ele compare os nomes dos títulos:

@Override
public int compareTo(Titulo outroTitulo) {
    return this.getNome().compareTo(outroTitulo.getNome());
}

Com essa implementação, quando você chama Collections.sort(lista), o sort utiliza o compareTo de cada objeto Titulo para decidir a ordem correta. É por isso que você não vê o compareTo sendo chamado explicitamente no seu código, mas ele está sendo utilizado "por trás das cenas" durante a ordenação.

Espero ter ajudado e bons estudos!

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