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

Não entendo o erro "Cannot reduce the visibility of the inherited method from Comparable<Aulas>"

Olá, Alguém pode me ajudar a achar o erro? "Cannot reduce the visibility of the inherited method from Comparable"

package exerciciosAlura;


public class Aulas implements Comparable<Aulas>{
    private String titulo;
    private int tempo;

    public Aulas(){};
    public Aulas(String titulo, int tempo) {
        this.titulo = titulo;
        this.tempo = tempo;
    }
    public String getTitulo(){
        return this.titulo;
    }
    public int getTempo(){
        return this.tempo;
    }
    @Override
    public String toString() {
        return "[Titulo: "+this.titulo+" Duração: "+this.tempo+" min]";
    }
    @Override
    private int compareTo(Aulas outraAula){// O ERRO DA NESSA LINHA
        return this.titulo.compareTo(outraAula.titulo);

    }

}
package exerciciosAlura;

import java.util.ArrayList;
import java.util.Collections;

public class TestaListasComObj {
    public static void main(String[] args) {
        Aulas a1 = new Aulas("javascrip", 10);
        Aulas a2 = new Aulas("C#", 15);
        Aulas a3 = new Aulas("HTML + CSS", 5);
        Aulas a4 = new Aulas("C++", 2);

        ArrayList<Aulas> aula = new ArrayList<>();
        aula.add(a1);
        aula.add(a2);
        aula.add(a3);
        aula.add(a4);

        Collections.sort(aula);
        System.out.println(aula);
    }

}
3 respostas
solução!

Se olhar a interface Comparable, você perceberá, mesmo que não esteja explícito, que o método CompareTo deve ser público. No caso acima, você alterou o escopo de público (public) para privado(private).

Ah sim, verdade, que erro bobo!!

Valeu Carlos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software