Olá Messias, tudo bem?
O erro ocorre porque você está implementando o método compareTo
da interface Comparable
na classe Titulo
, mas o método compareTo
da classe String
espera receber um parâmetro do tipo String
, não um objeto do tipo Titulo.
Quando você adicionou o parâmetro int duracaoEmMinutos
, o Java tentou chamar o método compareTo
da classe String
para comparar uma string com um número inteiro, o que não é possível.
Ao remover o parâmetro int duracaoEmMinutos
do construtor da classe Titulo
, você está permitindo que a comparação seja feita corretamente, pois agora o método compareTo
está sendo chamado com um parâmetro do tipo String.
Portanto, reforço que o método compareTo
da classe é usado para comparar duas strings lexicograficamente, ou seja, comparar a ordem alfabética das strings.
Espero ter esclarecido a dúvida.
Caso surja outra pergunta, é só compartilhar no fórum.
Abraços e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!