为什么我们需要在接口中指定参数名称?
当我们创建接口方法时,我们不能像在java中那样做:
void interface_method(Integer,String, /* other parameter */);
相反,我注意到我们还需要给参数名称lile:
void interface_method(Integer i, String s);
接口实现者也不需要具有与interface方法相同的参数名称。
我在这里发现了一个关于c#的类似问题。 他们提到了一个命名参数的场景,但我没有在java中找到任何其他相关的相关原因。
从技术角度来看,没有必要。
我一直把它作为语法规范化和文档辅助。
这种方式有:
- 没有理由区分类和接口方法语法,以及
- 可以使用(描述性!)参数名称生成默认的Javadoc文档。
如果没有参数名称,则很难区分相同类型的参数。
double divide(double, double);
公约说第二个参数是除数。 但是使用命名参数,它更明确,更清晰。 反过来,文档可以清楚地使用名称,而不是在尝试解释方法应该如何使用以及每个参数应该表示什么时,必须不断地说“第一个参数”或“第二个参数”。
我对此的看法:
-
这是用于具有名称的参数的语言规范;
-
界面是界面,名称有助于沟通意义;
-
接口实际上并不是像C / C ++那样的实现的前向声明,因此比较并不完全正确;