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

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

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

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

 void interface_method(Integer i, String s); 

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

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

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

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

这种方式有:

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

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

 double divide(double, double); 

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

我对此的看法:

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

  2. 界面是界面,名称有助于沟通意义;

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