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

Erro ao compilar onde diz pra remover do método o @override

Bom dia amigos, Ao compilar a classe aula conforme a aula aparece um erro nas classes @override e também não consigo fazer o método sort para ordenar pelo tempos das aulas. Segue o código:

package br.com.alura;

import java.util.Comparator;

public class Aula implements Comparator<Aula> {//Aqui também dá erro: Pedindo para implementar metodo comparator, sendo que já está implementado abaixo.

    String titulo;
    int tempo;

    public Aula(String titulo, int tempo) {
        super();
        this.titulo = titulo;
        this.tempo = tempo;
    }

    public String getTitulo() {
        return titulo;
    }

    public int getTempo() {
        return tempo;
    }

    @Override
    public String toString() {
        return "Aula: " + this.titulo + " tem duração de " + this.tempo + " minutos";
    }

    @Override //Aqui da erro dizendo o seguinte: Remove @override annotation 
    public int compareTo(Aula outraAula) {
        return this.titulo.compareTo(outraAula.titulo);
    }

}

Classe de Teste:

package br.com.alura;

import java.util.ArrayList;
import java.util.Comparator;

public class TestaListaDeAula {

    public static void main(String[] args) {

        Aula a1 = new Aula("Revistando as ArrayLists", 21);
        Aula a2 = new Aula("Listas de objetos", 20);
        Aula a3 = new Aula("Relacionamento de listas e objetos", 15);

        ArrayList<Aula> aulas = new ArrayList<>();
        aulas.add(a1);
        aulas.add(a2);
        aulas.add(a3);

        aulas.sort(Comparator.comparing(Aula::getTempo));
        System.out.println(aulas);
    }
}

Abraços

5 respostas
solução!

Olá Felipe,

o erro de compilação no @Override do método compareToé porque ele não encontrou nenhum método na classe mãe e/ou interfaces implementadas. Isso aconteceu porque na verdade a classe Aula precisa implementar a interface Comparable<Aula> para ter o método compareTo ao invés da Comparator<Aula>.

Obrigado Lucas, vacilei em erro de digitação, coisas de iniciante no java rs. abraços

Altere a linha

public class Aula implements Comparator<Aula>

Para

public class Aula implements Comparable<Aula>

Já foi solucionado amigo. É só ver acima.

Felipe, quando postei não estava aparecendo para mim a resposta anterior. Valeu !