当前位置: 首页 > 面试题库 >

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

佘飞鸣
2023-03-14
问题内容

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

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

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

void interface_method(Integer i, String s);

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

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


问题答案:

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

我一直将其作为语法规范化和文档帮助。

这样有:

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


 类似资料:
  • 问题内容: 在Golang中,我们将结构体与接收器方法结合使用。到这里为止一切都很完美。 我不确定什么是接口。我们在结构中定义方法,如果要在结构上实现方法,则无论如何都要在另一个结构下再次编写该方法。 这意味着接口似乎只是方法定义,仅占用了页面上多余的空间。 有没有解释我为什么需要接口的示例? 问题答案: 接口太大了,不能在这里给出全面的答案,但是有些事情需要弄清楚它们的用途。 接口是一种 工具

  • 不确定这是不是一个愚蠢的问题,但我注意到: 在我的实现中,我将第二个参数称为maxRecords。然而,在接口中,它被定义为“计数”编译器仍然考虑实现的接口,这很好,但是会导致一点歧义。显然,我应该重命名其中一个参数以匹配另一个。 在重新命名之前,我玩了一会儿,发现了一些有趣的东西。我不允许将我的接口声明为: 这只是编译器对C#symantics的过度保护吗?接口方法中的参数名除了使代码更具可读性

  • 问题内容: 我在课堂上有这个功能: 我尝试使用此函数来调用该函数: 问题是编译器希望它看起来像这样: 为什么第一个会导致错误? 问题答案: Swift 2.0更新 :现在,默认情况下,函数的功能与方法相同,并且对于两种方法而言: 第一个参数没有外部名称;和 其他参数的外部名称与内部名称相同。 除此之外,下面的规则仍然适用,只是速记语法已消失。 这是一个更一般的答案:函数在类之外定义为真函数时以及在

  • 问题内容: 我们需要大量的序列化工作,并且必须在使用的每个对象上指定标签,这是一种负担。特别是当它是第三方类时,我们不能真正更改。 问题是:由于是一个空接口,并且Java一旦添加便提供了可靠的序列化 为什么它们不使所有内容都可序列化,仅此而已? 问题答案: 序列化充满陷阱。这种形式的自动序列化支持使类内部成为公共API的一部分(这就是javadoc为你提供类的持久化形式的原因)。 为了实现长期持久

  • 我阅读了一些文章,发现:默认情况下,预启用了以下HttpMessageConverters实例: ByteArrayHttpMessageConverter-转换字节数组 StringHttpMessageConverter-转换字符串 ResourceHttpMessageConverter-转换org.springframework.core.io.resource用于任何类型的八位组流 So

  • 我一直在学习Quarkus,这很好。我很享受它与其他东西的完美结合。 我一直在按照本指南(https://quarkus.io/guides/kafka)将Quarkus与Apache Kafka一起使用,我有点生气为什么我们需要在application.properties文件中指定接收器和源“endpoint”?“通道”。这些难道不是代码中内容的重复吗?也许我不明白这里的一些东西,但我认为不需