Lambda ifadelerinde kullanılmayan parametreleri belirtmek için özel bir karakter olarak alt çizgi ekleyecek olan JEP 302'nin 2. Aşamasıdır .
Alt çizgi tedavisi
Birçok dilde, _
adsız bir lambda parametresini belirtmek için alt çizgi ( ) kullanmak yaygındır (ve benzer şekilde yöntem ve istisna parametreleri için):
BiFunction<Integer, String, String> biss = (i, _) -> String.valueOf(i);
Bu, kullanılmayan argümanların daha güçlü statik kontrolüne izin verir ve ayrıca birden fazla argümanın kullanılmamış olarak işaretlenmesine izin verir. Bununla birlikte, alt çizgi Java 8'den itibaren geçerli bir tanımlayıcı olduğundan, uyumluluk, Java'da alt çizginin bu role hizmet edebileceği yere ulaşmak için daha dolaylı bir yol izlememizi gerektirdi. Aşama 1, Java 8'de bir lambda biçimsel parametre adı olarak alt çizgiyi yasaklıyordu (lambdalar daha önce mevcut olmadığı için bunun uyumlulukla ilgili bir sonucu yoktu) ve diğer yerlerde tanımlayıcı olarak alt çizginin kullanılması için bir uyarı yayınlandı. Faz 2, bu uyarı bir hata haline geldiğinde Java 9'da geldi. Artık kullanılmayan bir lambda, yöntem veya resmi bir parametre yakalamak için planlanan alt çizginin rehabilitasyonunu tamamlama özgürlüğüne sahibiz.
_
yalnızca lambda parametre adı olarak değil, herhangi bir yasal tanımlayıcı adı olarak izin verilmeyeceğini unutmayın. Bu aslında derleme 43'te düzeltildi: bugs.openjdk.java.net/browse/JDK-8061549