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

Meu codigo não compila com os dois métodos Consumidor e Comprador, agora quando eu comento um deles ai compila. Podem me ajudar?

public class OrdenaStrings {

public static void main(String[] args) {

    List<String> palavras = new ArrayList<>();

    palavras.add("alura online");
    palavras.add("editora casa do codigo");
    palavras.add("caelum");

    Comparator<String> comparador = new ComparadorPorTamnaho();

    palavras.sort(comparador);
    System.out.println(palavras);

    Consumer<String> consumidor = new ConsumidorDeString();
    palavras.forEach(consumidor);
}

}

class ConsumidorDeString implements Consumer {

@Override
public void accept(String s) {
    System.out.println(s);

}



class ComparadorPorTamnaho 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;
    }

}

}

2 respostas

Olá!

Acredito que sejam classes separadas :

class ConsumidorDeString implements Consumer {
    @Override
    public void accept(String s) {
            System.out.println(s);
    }
}

outra classe

class ComparadorPorTamnaho 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;
    }
}
solução!

Fala, Sillas Roberto. Tudo certo?

Acredito que o erro esteja na classe "ConsumidorDeString".

class ConsumidorDeString implements Consumer {
    @Override
    public void accept(String s) {
            System.out.println(s);
    }
}

Tenta o seguinte: "implements Consumer< String>" e vê se o código funciona.