La expresión lambda no es compatible con el método stream (). allMatch () / .anyMatch () [duplicado]

Dec 15 2020

No entiendo por qué JAVA 1.8 no admite la expresión lambda en stream (). Filter () / allMatch () / anyMatch ()

por ejemplo :

Fragmento de ERROR del IDE de eclipse

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); 
} 
} 

Recibo errores en eclipse como "Error de sintaxis en el token" - ", - esperado" y líneas rojas debajo de 'n'. Ayúdame a comprender y resolver este problema.

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

Respuestas

ErezBenHarush Dec 15 2020 at 01:59

Su código parece compilarse y ejecutarse en https://www.tutorialspoint.com/compile_java_online.phpQue ejecuta Java 1.8.0_141. Compruebe si el tiempo de ejecución de destino en eclipse está configurado en java 8.

Puede utilizar Target JRE en Eclipse como ejemplo.