23

当我们创建接口方法时,我们不能在java中做类似的事情:

void interface_method(Integer,String, /* other parameter */);

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

void interface_method(Integer i, String s);

此外,接口实现者不需要与接口方法中的参数名称相同。

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

4

3 回答 3

28

从技术角度来看,这是没有必要的。

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

这样就有了:

  1. 没有理由区分类和接口方法的语法,并且
  2. 可以使用(描述性!)参数名称生成默认 Javadoc 文档。
于 2012-06-12T13:58:09.160 回答
15

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

double divide(double, double);

约定说第二个参数是除数。但是使用命名参数,它更明确且更清晰。反过来,文档可以清楚地使用名称,而不是在尝试解释该方法应如何使用以及每个参数的含义时必须不断地说“第一个参数”或“第二个参数”。

于 2012-06-12T13:58:56.927 回答
5

我对此的看法:

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

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

  3. 接口实际上并不是像 C/C++ 中那样的实现的前向声明,因此比较并不完全正确;

于 2012-06-12T13:58:41.533 回答