1
resposta

Ao chamar o metodo sorted a ide não pede para herdar a supér classe Comparable

Profesor,

Na aula quando você chama o metodo sorted, ele pede para herdar a super tipo Comparable.

O meu caso ele pede pra criar uma extension.

Sendo que seu seguir o passo a passo que você mostra na aula, funciona. Mas achei um pouco estranho a gente está utilizando a mesma IDE, porém com comportamente diferente. Sei que esse não é o intuito na aula, mas será que é algum problema no ambiente?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Thailan!

Entendo a sua dúvida em relação ao comportamento diferente da IDE ao chamar o método sorted. Na verdade, o comportamento da IDE está correto.

Na aula, o professor mostra como implementar a interface Comparable na classe Livro para definir um critério de ordenação. Isso é necessário quando queremos uma ordenação personalizada, como por exemplo, ordenar os livros por ano de publicação.

Porém, a função sorted também possui uma sobrecarga que permite passar uma função lambda como parâmetro, definindo assim um critério de ordenação personalizado. Essa é a opção que você está utilizando ao criar uma extension function.

Por exemplo, se quisermos ordenar os livros por título, podemos fazer da seguinte forma:

val ordenadoPorTitulo = livros.sortedBy { it.titulo }

Dessa forma, a lista de livros será ordenada de acordo com o critério definido na função lambda, que no caso é o título do livro.

Portanto, não há nenhum problema no ambiente. A diferença de comportamento ocorre porque você está utilizando uma forma diferente de definir o critério de ordenação.

Espero ter esclarecido a sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Espero ter ajudado e bons estudos!