O codigo abaixo é mais um exemplo de CODIGO QUE NAO FUNCIONA. É um COPY PASTE da opiniao do instrutor! Triste ne? Ta faltando alguma coisa. Veja a mensagem de erro mais abaixo.
Alguem saberia porque nao? Agradeço a ajuda dos colegas porque os instrutores e monitores, simplesmente, NAO RESPONDEM.
Na linha:
ComparadorPorTamanho comparador = new ComparadorPorTamanho(); o "new..." fica grifado e da a seguinte mensagem de erro:
No enclosing instance of type CopyPasteMetodoForeach is accessible. Must qualify the allocation with an enclosing instance of type CopyPasteMetodoForeach (e.g. x.new A() where x is an instance of CopyPasteMetodoForeach).
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class CopyPasteMetodoForeach {
public static void main(String[] args) {
List<String> palavras = new ArrayList<>();
palavras.add("alura online");
palavras.add("casa do código");
palavras.add("caelum");
for (String p : palavras) {
System.out.println(p);
}
ComparadorPorTamanho comparador = new ComparadorPorTamanho();
palavras.sort(comparador);
System.out.println(palavras);
}
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;
}
}
}