Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Da onde vem esse outroFilme? Qual é a funcionalidade em si? Com o que ele é comparado?

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

Ele é uma instancia do Titulo sem nome e sem ano de lançamento? Seria o que exatamente? Como acontece por baixo dos panos?

Por exemplo:

Se temos uma lista com três filmes: "Matrix", "Avatar" e "Inception". Quando o método compareTo é chamado para o filme "Matrix", ele será comparado com "Avatar". Nesse contexto, o this se refere a "Matrix" e o outroTitulo se refere a "Avatar". Então esse outroFilme é o elemento seguinte do array? Qualquer elemento da lista? Se não, o que ele é então? Em outra chamada, "Avatar" será comparado com "Inception", com this se referindo a "Avatar" e outroTitulo a "Inception"?


O outroTitulo é uma instancia da classe Titulo, mas que não populei nenhum dado, como vou fazer a comparação com getnome do outroTitulo então, não tem lógica

2 respostas
solução!

Olá, Guilherme!

Pelo código que você compartilhou, podemos entender que a classe em questão, Titulo, implementa a interface Comparable<Titulo>. Isso significa que a classe Titulo possui um critério de comparação definido, permitindo que objetos dessa classe sejam ordenados em uma lista.

No método compareTo, que é obrigatório implementar ao implementar a interface Comparable, é feita a comparação entre o título atual (this) e outro título (outroTitulo). No exemplo que você deu, o critério de comparação é o nome do título. O método compareTo utiliza o método compareTo da classe String para fazer a comparação dos nomes dos títulos.

Quando você chama o método compareTo em um objeto Titulo, ele será comparado com outro objeto Titulo com base no critério de comparação definido. O this se refere ao título atual e o outroTitulo se refere ao título com o qual está sendo comparado.

Por exemplo, se tivermos uma lista com três filmes: "Matrix", "Avatar" e "Inception", quando o método compareTo for chamado para o filme "Matrix", ele será comparado com "Avatar". Nesse contexto, o this se refere a "Matrix" e o outroTitulo se refere a "Avatar". Em outra chamada, "Avatar" será comparado com "Inception", com o this se referindo a "Avatar" e o outroTitulo a "Inception".

Quanto à sua pergunta sobre o outroTitulo ser o elemento seguinte do array, ele não é necessariamente o elemento seguinte. O outroTitulo é o título com o qual o título atual está sendo comparado, e pode ser qualquer elemento da lista.

Bons estudos!

Como eu vou comparar 2 objetos, sendo que um nem foi instanciado ainda? Nem tem nome, apenas declarado em uma variável?