为何forEach中用class作变量名会报invalid TypeElidedFormalParameter错误?
为什么Java中不能用
class作为Lambda参数名? 这是因为class是Java的关键字——Java语言预留了一系列特殊词汇用来定义语法结构,这些词不能被用作自定义的变量名、参数名、方法名或者类名。
在你写的这段代码里:
scraper.getListOfClasses(globalDocument).forEach(class -> tagsAndClasses.add(class));
Lambda表达式里的class是你想定义的参数名,但它和Java用来声明类的关键字class重名了,编译器会直接判定这是语法错误,所以抛出Syntax error on token "class", invalid TypeElidedFormalParameter的提示。
只要换成一个不是Java关键字的名字(比如你用的classes),就不会触发这个问题了。
内容的提问来源于stack exchange,提问作者Vled
相关产品推荐
相关产品推荐

