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

MAIS E MAIS CODIGOS QUE NAO FUNCIONAM E CODIGOS QUE NAO FUNCIONAM

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;
            }
        }
}
4 respostas

É simples apenas coloque um String no seu ArrayList, segue abaixo↓

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

public class CopyPasteMetodoForeach {

        public static void main(String[] args) {
                               //coloque String aqui↓
            List<String> palavras = new ArrayList<String>();
            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;
            }
        }
}

Valeu amigo, muito obrigado, mas o problema nao era esse. Tinha um } na posicao errada. Isso nao permitia reconhecer a classe da sequencia do codigo. Liguei para um colega e ele me respondeu. Gente fina mesmo, como voce, comprometido, querendo ajudar.

Nao como os caras do Alura, eles querem faturar o maximo e trabalhar o minimo. Se voce quiser aprender de verdade, estudar, e fizer muitas perguntas ou apontar defeitos eles te rejeitam. Grande abraço

Valeu, se puder marcar essa discussão como respondida eu ficaria muito feliz.☻☺

solução!

Valeu, se puder marcar essa discussão como respondida eu ficaria muito feliz.☻☺