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

时间:2012-06-12 13:54:12

标签: java interface parameters named-parameters

当我们创建界面方法时,我们不能像 java

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

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

void interface_method(Integer i, String s);

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

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

3 个答案:

答案 0 :(得分:28)

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

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

这样就有了:

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

答案 1 :(得分:15)

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

double divide(double, double);

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

答案 2 :(得分:4)

我对此的看法:

  1. 这是用于具有名称的参数的语言规范;

  2. 界面是界面,名称有助于传达意义;

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