如果lambda表达式不需要参数,因此它的名称是多余的,我如何编写它?
这种方式不编译:
setRowFactory(-> new TableRowCustom());
但是这个做了:
setRowFactory(__ -> new TableRowCustom());
有没有更好的办法?
解决方法:
既然你提到过这个有用了
setRowFactory(__ -> new TableRowCustom());
我只想使用一次性单(有效标识符)字符.
setRowFactory(i -> new TableRowCustom());
setRowFactory($-> new TableRowCustom()); // allowed, but avoid this
甚至
setRowFactory(ignored -> new TableRowCustom());
要明确.
LambdaExpression:
LambdaParameters -> LambdaBody
和
LambdaParameters:
Identifier
( [FormalParameterList] )
( InferredFormalParameterList )
InferredFormalParameterList:
Identifier {, Identifier}
换句话说,您不能省略标识符.
正如Holger所示,如果他们决定使用_作为未使用的参数名称,则很容易在源代码中从__更改为_.你可能想暂时坚持下去.
标签:java,java-8,lambda
来源: https://codeday.me/bug/20191001/1840239.html