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

Erro na linha A

class A{
    int a = 0;

    public static void main(String[] args) {
        new A().method(1);
    }        

    private void method(int a) {
        Predicate<Integer> d = a -> a > 0; // A

        if(d.test(a)){ // B
            System.out.println(a);
        }
    }
}

Qual é o erro na linha A?

4 respostas

Oi Anderson, acho que esse código aí não tem erro.. como explicitado no exercício, vai imprimir 1. Lá está até um pouco diferente, pq ele passa o lambda como argumento do método.

Oi alberto, o exercício ao qual você se refere é o 5. Este exercício que eu postei é o 6.

Também achei que não possui erro, porém na resposta do exercício consta que não compila pois ocorre um erro na linha A.

Infelizmente não possuo o compilador instalado aqui agora para testar :(

solução!

Opa, desculpa... o problema é que o nome do parâmetro da expressão lambda é igual ao nome do parâmetro do método.

Obrigado Alberto.