Acabo de reemplazar s
la siguiente expresión lambda por _
:
s -> Integer.parseInt(s)
El compilador de Eclipse dice:
'_' no debe usarse como identificador, ya que es una palabra clave reservada desde el nivel de fuente 1.8 en adelante.
No he encontrado ninguna explicación en JLS §3.9 Estructura léxica / Palabras clave.
_
no se permitirá como nombre de identificador legal y no solo como nombre de parámetro lambda. En realidad, esto se solucionó en la compilación 43: bugs.openjdk.java.net/browse/JDK-8061549enum
yassert
eran identificadores legales…Es la Fase 2 de JEP 302 , que va a agregar un subrayado como un carácter especial para denotar los parámetros no utilizados en las expresiones lambda.
fuente
$
para este propósito.Cambios en el lenguaje Java para Java SE 9 https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-16A5183A-DC0D-4A96-B9D8-AAC9671222DD
Desde Java 9, el carácter _ ya no se puede usar como identificador, no solo dentro del contexto lambda
fuente