为什么我们需要在接口中指定参数名称?

Pri*_*shi 23 java parameters interface named-parameters

当我们创建接口方法时,我们不能像在java中那样做:

void interface_method(Integer,String, /* other parameter */);
Run Code Online (Sandbox Code Playgroud)

相反,我注意到我们还需要提供参数名称lile:

void interface_method(Integer i, String s);
Run Code Online (Sandbox Code Playgroud)

接口实现者也不需要具有与interface方法相同的参数名称.

我在这里发现了一个关于c#的类似问题.他们提到了一个命名参数的场景,但我没有在java中找到任何其他相关的相关原因.

Dav*_*ton 28

从技术角度来看,没有必要.

我一直把它作为语法规范化和文档辅助.

这样就有了:

  1. 没有理由区分类和接口方法语法,以及
  2. 可以使用(描述性!)参数名称生成默认的Javadoc文档.


unh*_*ler 15

如果没有参数名称,则很难区分相同类型的参数.

double divide(double, double);
Run Code Online (Sandbox Code Playgroud)

公约说第二个参数是除数.但是使用命名参数,它更明确,更清晰.反过来,文档可以清楚地使用名称,而不是在尝试解释方法应该如何使用以及每个参数应该表示什么时,必须不断地说"第一个参数"或"第二个参数".

  • @PriyankDoshi IMO不是真的;*first*文档源应该始终是代码,因为代码是最终的工件.Javadocs用于提供签名中未提供的*附加*信息. (5认同)

mak*_*mov 5

我对此:

  1. 这是语言规范中的参数名称。

  2. 接口是接口,名称有助于传达含义;

  3. 接口并不是像C / C ++一样遵循的实现的前向声明,因此比较并不完全正确。