Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exemplo da aula 1 não compila

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class OrdenaStrings {
    public static void main(String[] args) {
        List<String> palavras = new ArrayList<String>();
        palavras.add("alura online");
        palavras.add("casa do código");
        palavras.add("caelum");
        Collections.sort(palavras);
        System.out.println(palavras);

        Comparator<String> comparador = new ComparadorPorTamanho();
        palavras.sort(comparador);
    }

    public class ComparadorPorTamanho implements Comparator<String> {
        @Override
        public int compare(String s1, String s2) {
            if (s1.length() < s2.length())
                return -1;
            if (s1.length() > s2.length())
                return 1;
            return 0;
        }
    }

}

Não entendi o significado da Execption

Exception in thread "main" java.lang.Error: Unresolved compilation problem: No enclosing instance of type OrdenaStrings is accessible. Must qualify the allocation with an enclosing instance of type OrdenaStrings (e.g. x.new A() where x is an instance of OrdenaStrings).

at OrdenaStrings.main(OrdenaStrings.java:15)

1 resposta
solução!

Você deve definir a Classe do ComparadorPorTamanho como estática, pois você a declarou na própria classe main, portando seu código deverá ficar assim para rodar:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class OrdenaStrings {
    public static void main(String[] args) {
        List<String> palavras = new ArrayList<String>();
        palavras.add("alura online");
        palavras.add("casa do código");
        palavras.add("caelum");
        Collections.sort(palavras);
        System.out.println(palavras);
        palavras.sort(new ComparadorPorTamanho());
        //Comparator<String> comparador = ComparadorPorTamanho();
        //palavras.sort(comparador);
    }

    public static class ComparadorPorTamanho implements Comparator<String> {

        @Override
        public int compare(String s1, String s2) {
            if (s1.length() < s2.length())
                return -1;
            if (s1.length() > s2.length())
                return 1;
            return 0;
        }

    }

}

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