Saya baru saja mengganti s
ekspresi lambda berikut dengan _
:
s -> Integer.parseInt(s)
Kompiler Eclipse mengatakan:
'_' tidak boleh digunakan sebagai pengenal, karena ini adalah kata kunci yang dipesan dari sumber level 1.8 di.
Saya belum menemukan penjelasan apa pun di JLS §3.9 Struktur Leksikal / Kata Kunci.
_
tidak akan diizinkan sebagai nama pengenal hukum dan tidak hanya sebagai nama parameter lambda. Ini sebenarnya telah diperbaiki dalam build 43: bugs.openjdk.java.net/browse/JDK-8061549enum
danassert
merupakan pengenal resmi…Ini adalah Fase 2 dari JEP 302 , yang akan menambahkan garis bawah sebagai karakter khusus untuk menunjukkan parameter yang tidak digunakan dalam ekspresi lambda.
sumber
$
untuk tujuan ini.Perubahan Bahasa Java untuk Java SE 9 https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-16A5183A-DC0D-4A96-B9D8-AAC9671222DD
Dari Java 9, karakter _ tidak dapat digunakan sebagai pengenal lagi, tidak hanya dalam konteks lambda
sumber