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

Erro Compilação Java8

Pessoal estou iniciando o curso Java8 e para isso instalei o Eclipse Luna EE. Ao construir o primeiro exercicio o eclipse está me retornando esta mensagem de erro: 'No enclosing instance of type OrdenaTeste is accessible. Must qualify the allocation with an enclosing instance of type OrdenaTeste (e.g. x.new A() where x is an instance of OrdenaTeste).'

Codigo Fonte: ''' package br.com.caelum.java8;

import java.util.ArrayList; import java.util.List; import java.util.function.Consumer;

public class OrdenaTeste{

public static void main(String[] args) {

List palavras = new ArrayList<>(); palavras.add("alura online"); palavras.add("casa do código"); palavras.add("caelum");

Consumer consumidor = new Imprime();

palavras.forEach(consumidor);

}

public class Imprime implements Consumer{

@Override public void accept(String s) {

System.out.println(s);

}

} } '''

7 respostas

Oi Marcio,

acho que só faltam os "Generics". Veja o codigo abaixo, sempre usando <..>

List<String> palavras = new ArrayList<>();
palavras.add("alura online");
palavras.add("casa do código");
palavras.add("caelum");

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

e a classe Imprime:

public class Imprime implements Consumer<String> {

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

abs

Oi Nico, não entendi muito bem.. Este código que vc postou é a maneira correta? O meu código está assim desse mesmo jeito.. e o problema acontece.

Oi Marcio,

não sei se foi problema da formatação aqui no alura mas repare que tem pequenas diferenças entre o seu código e meu. Por exemplo:

Seu código:

List palavras = new ArrayList<>();

Meu código:

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

O código que eu postei é correto e testado (só falta o metodo main). Ficou mais claro?

abs

Entendi.. deve ter sido problema na formatação mesmo. Quando postei deve ter dado problema.. mas o fonte original aqui está do jeito que vc me instruiu.. Será que a causa deste problema pode ser outra coisa?

Pode ser alguma coisa do Eclipse Luna?

solução!

Marcio, vc criou a classe Imprime dentro da classe OrdenaTeste?

Se for isso, tire o public da classe Imprime e coloque static.

Ou, melhor, separe as classes em dois arquivos.

abs

Obrigado irmão.. era isso mesmo.

Abraço