8
respostas

Exception - Importe estático

Boa tarde!

Troquei isso:

palavras.sort(Comparator.comparing(String::length));

Por isso:

palavras.sort(comparing(String::length));

E apareceu essa mensagem:

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method comparing(String::length) is undefined for the type Teste"

Quando eu clico Ctrl + 1 (quick fix do Eclipse), aparece a mensagem:

"Create method 'comparing(Object)'

8 respostas

Fala ai Jonas, tudo bem ?

Cara você chegou a fazer o import ou apenas removeu a invocação da classe ?

Boa tarde Matheus! Tudo bem, e você? O import continua lá, eu invoco o método direto, sem invocar a classe. Está errado? Pelo menos a resposta do exercício era assim...

Me mostra sua classe inteira por gentileza

package br.com.alura.java8;

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

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

        palavras.forEach(System.out::println);

        System.out.println();

        //palavras.sort(Comparator.comparing(String::length));
        palavras.sort(comparing(String::length));
        System.out.println(palavras);
    }
}

Experimenta fazer isso:

package br.com.alura.java8;

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

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

        palavras.forEach(System.out::println);

        System.out.println();

        //palavras.sort(Comparator.comparing(String::length));
        palavras.sort(comparing(String::length));
        System.out.println(palavras);
    }
}

Mesmo erro:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method comparing(String::length) is undefined for the type Teste at br.com.alura.java8.Teste.main

Acabei de rodar no meu eclipse, dá uma olhada na saída:


casa do código
alura online
caelum

[caelum, alura online, casa do código]

Estranho... Vou reinstalar o Eclipse e ver no que dá!