_(下划线)是一个保留关键字
我刚刚用下面的lambdaexpression式replace了s
:
s -> Integer.parseInt(s)
Eclipse编译器说:
'_'不应该被用作一个标识符,因为它是来自源级别1.8的保留关键字。
我还没有在JLS§3.9词法结构/关键词中find任何解释。
这个地方是JLS§15.27.1。 Lambda参数
如果lambda参数具有名称_(即单个下划线字符),则会出现编译时错误。
不鼓励在任何情况下使用variables名称_。 Java编程语言的未来版本可能会将此名称保留为关键字和/或赋予它特殊的语义。
因此,Eclipse消息是有误导性的,尤其是当两个情况都使用相同的消息时,为lambda参数生成错误或者为任何其他_
标识符生成警告时。
Java SE 9的Java语言更改 https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-16A5183A-DC0D-4A96-B9D8-AAC9671222DD
从Java 9开始,_字符不能再用作标识符,而不仅仅是在lambda上下文中
下划线字符不是合法的名称。
如果使用下划线字符(“_”)标识符,则不能再编译源代码。