Я только что заменил s
следующее лямбда-выражение на _
:
s -> Integer.parseInt(s)
Компилятор Eclipse говорит:
'_' не следует использовать в качестве идентификатора, поскольку это зарезервированное ключевое слово начиная с уровня источника 1.8.
Я не нашел никаких объяснений в лексической структуре / ключевых словах JLS §3.9 .
_
будут запрещены любые допустимые имена идентификаторов, а не только имя лямбда-параметра. Фактически это было исправлено в сборке 43: bugs.openjdk.java.net/browse/JDK-8061549enum
иassert
были законными идентификаторами…Это фаза 2 JEP 302 , которая добавит подчеркивание в качестве специального символа для обозначения неиспользуемых параметров в лямбда-выражениях.
источник
$
для этой цели.Изменения языка Java для Java SE 9 https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-16A5183A-DC0D-4A96-B9D8-AAC9671222DD
Начиная с Java 9, символ _ больше не может использоваться в качестве идентификатора, а не только в контексте лямбда.
источник