A expressão lambda não é compatível com o método stream (). allMatch () / .anyMatch () [duplicar]

Dec 15 2020

Não estou entendendo por que JAVA 1.8 não suporta a expressão lambda em stream (). Filter () / allMatch () / anyMatch ()

por exemplo :

Fragmento de ERROR do Eclipse IDE

import java.util.*; 
  
class GFG { 
      
    // Driver code 
    public static void main(String[] args) { 
          
    // Creating a list of Integers 
    List<Integer> list = Arrays.asList(3, 4, 6, 12, 20); 
      
    // Check if all elements of stream 
    // are divisible by 3 or not using  
    // Stream allMatch(Predicate predicate) 
    boolean answer = list.stream().allMatch(n-> n % 3 ==0); 
      
    // Displaying the result 
    System.out.println(answer); 
} 
} 

Estou recebendo erros no eclipse como "Erro de sintaxe no token" - ", - esperado" e linhas vermelhas abaixo de 'n'. Por favor me ajude a entender e resolver este problema.

#NOTA: Estou usando o eclipse 3.8, JAVA 8 (1.8.0_271)

Respostas

ErezBenHarush Dec 15 2020 at 01:59

Seu código parece compilar e executar em https://www.tutorialspoint.com/compile_java_online.phpQue executa o Java 1.8.0_141. Verifique se o tempo de execução de destino no eclipse está definido para java 8.

Você pode usar o Target JRE no Eclipse como exemplo.