不使用变量时,lambda 表达式中变量名称的约定是什么?

What is the convention for variable names in lambda expressions when the variable is not used?

我正在尝试找到一个类似于 i,j 用于循环或 x,y 用于坐标等的名称。

我有这样的代码:

DbSetup.setupCommon(x -> HibernateHelper.addResource(SpecificEntityHelper.HIBERNATE_RESOURCE, schemaName));

在这种情况下,x 不是必需的变量名,我发现它在我们项目的代码库中很少用到,所以可能是 当然,在这种特定情况下,我不能使用对函数 HibernateHelper::addResource 的静态引用,而且听起来没有其他方法根本没有变量名。

目前,Java 语法没有提供一种方法,如果要忽略参数,则完全没有标识符。

单个 _ 将来可能 用于此目的,但从 Java 16 开始, _ 只是一个关键字“保留以供将来在参数声明中使用。”;参见 JLS 3.9。)

不建议使用$,因为所有包含$的标识符都保留给源代码生成器使用或用于遗留目的;见 JLS 3.8

此外,对于 lambda 表达式的虚拟参数,没有既定的约定名称。


我的建议是只使用一个字母标识符;例如x。 lambda 表达式通常足够小,您可以很容易地看到(例如)表达式中未使用 x

或者,您可以选择 unuseddummy 之类的名称来表明您不打算使用该值。