Ich habe gerade s
im folgenden Lambda-Ausdruck ersetzt durch _
:
s -> Integer.parseInt(s)
Der Eclipse-Compiler sagt:
'_' sollte nicht als Bezeichner verwendet werden, da es sich ab Quellstufe 1.8 um ein reserviertes Schlüsselwort handelt.
Ich habe keine Erklärung in JLS §3.9 Lexikalische Struktur / Schlüsselwörter gefunden.
_
keine legalen Bezeichnernamen mehr zulässig sind und nicht nur ein Lambda-Parametername. Dies wurde tatsächlich in Build 43 behobenenum
undassert
waren rechtliche Identifikatoren…Es ist die Phase 2 von JEP 302 , die einen Unterstrich als Sonderzeichen hinzufügt, um nicht verwendete Parameter in Lambda-Ausdrücken zu kennzeichnen.
quelle
$
für diesen Zweck.Java-Sprachänderungen für Java SE 9 https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-16A5183A-DC0D-4A96-B9D8-AAC9671222DD
Ab Java 9 kann das Zeichen _ nicht mehr als Bezeichner verwendet werden, nicht nur im Lambda-Kontext
quelle