¿Por qué un solo carácter de subrayado es un nombre ilegal para un parámetro lambda?
Traté de nombrar un parámetro lambda_
, p.ej. (una versión reducida):
Consumer<Object> c = _ -> {};
Como quería indicar que se estaba ignorando un parámetro, pero recibí el siguiente error del compilador:
El uso de '_' como identificador está prohibido para los parámetros lambda
Esto fue una sorpresa para mí. Curiosamentedos los guiones bajos están bien:
Consumer<Object> c = __ -> {}; // no compile error
Entonces, no es el carácter de subrayado en general, sino uno solo.
¿Por qué el nombre de subrayado simple está específicamente prohibido?