首页 > 解决方案 > 不使用变量时,lambda 表达式中变量名称的约定是什么?

问题描述

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

我有这样的代码:

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

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

标签: javalambdacoding-stylenaming-conventionsnaming

解决方案


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

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

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

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


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

或者,您可以选择一个喜欢的名称unuseddummy标记您不使用该值的意图。


推荐阅读