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

在Java中,“…”是什么意思?[重复]

章博耘
2023-03-14
问题内容

我写Java已有一段时间了,今天我遇到了以下声明:

public static void main(String... args) {

}

请注意数组声明中的“点点点”,而不是通常的括号[]。显然可以。实际上,我写了一个小测试并验证了它的有效性。因此,我提取了Java语法,以查看参数声明语法的位置,但未找到任何内容。

那么对那里的专家来说,这是如何工作的呢?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但不能像这样在函数体内声明数组。

无论如何,您知道在哪里记录了此文件。这是好奇心,也许没有任何时间花在它上面,但是我很沮丧。


问题答案:

查看Java语言规范,第三版,第8章(类)。埋在其中的是这个金块:

如果最后一个形式参数是类型T的可变Arity参数,则考虑定义类型T
[]的形式参数。该方法则是可变Arity方法。否则,这是固定的固定方法。可变arity方法的调用可能包含比形式参数更多的实际参数表达式。将评估所有与变量arity参数之前的形式参数不符的实际参数表达式,并将结果存储到一个数组中,该数组将传递给方法调用(第15.12.4.2节)。

基本上,任何方法调用的最后一个参数都可以具有T...。如果有,它将转换为T[]

因此,基本上,您拥有的是复制更传统的理想方法

String[] args


 类似资料:
  • 我很难理解<代码> 结果是15 但是怎么会变成15呢?

  • 请帮助我理解这个表达是什么意思?

  • 我不知道问号(< code >?)在java里代表,我在做一个小程序,一个Nim-game。我们在一本书里寻求帮助,看到了这样一句话: 我不明白,表示,它可以与if语句有关但您将其放在变量中吗?并且可以是“其他”?(我刚才说的这些事情可能会很误导)

  • 我发现这段代码是为了在SO post中找到重复的代码。但我不明白这行是什么意思

  • 但是得到了错误:

  • 问题内容: 我已经看到了声明,接口和类 这是什么意思? 问题答案: 没有证据,我相信您在谈论Java的泛型支持… 泛型允许您抽象类型 在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常会这样做。 这导致在运行时做出许多困难的选择,您必须进行运行时检查以查看是否有可能将给定的Object强制转换为可用类型…例如 现在,这已经很明显了,但是如