在正文中忽略参数时编写 lambda 表达式
如果 lambda 表达式不需要参数,因此它的名称过多,我该如何编写它?
这种方式不会编译:
setRowFactory(-> new TableRowCustom());
但是这个确实如此:
setRowFactory(__ -> new TableRowCustom());
有没有更好的方法?
如果 lambda 表达式不需要参数,因此它的名称过多,我该如何编写它?
这种方式不会编译:
setRowFactory(-> new TableRowCustom());
但是这个确实如此:
setRowFactory(__ -> new TableRowCustom());
有没有更好的方法?
既然你已经提到这有效
setRowFactory(__ -> new TableRowCustom());
我假设预期的函数接口方法必须接受单个参数。标识符 _
是自 Java 8 以来的保留关键字。
我只使用一次性的单个(有效标识符)字符。
setRowFactory(i -> new TableRowCustom());
setRowFactory($ -> new TableRowCustom());
虽然,您可能应该避免使用 Java 语言规范声明$
美元符号应仅用于机械生成的源代码,或者很少用于访问遗留系统上预先存在的名称。下划线可用于由两个或多个字符组成的标识符,但由于它是关键字,因此不能用作单字符标识符。
您也可以写出来
setRowFactory(ignored -> new TableRowCustom());
要明确。
Java 语言规范定义了 lambda 表达式的语法
LambdaExpression:
LambdaParameters -> LambdaBody
和
LambdaParameters:
Identifier
( [FormalParameterList] )
( InferredFormalParameterList )
InferredFormalParameterList:
Identifier {, Identifier}
换句话说,您不能省略标识符。
正如 Holger 所建议的那样,如果他们决定用作未使用的参数名称,则在源代码中很容易从 更改为 。你可能想暂时坚持下去。_
__
_