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

Java的主体为什么不使用可变长度参数列表?

颛孙嘉石
2023-03-14
问题内容

我对Java main声明的语法有疑问:

public static void main (String[] args)

由于调用主函数时可以传递可变数量的String,因此这不应该是可变长度参数列表而不是数组吗?为什么使用带有字符串参数列表的此方法的命令行调用甚至可以工作?(除非进行后台处理,该处理使用字符串列表构建一个数组,然后将该数组传递给main方法…?)main声明不应该像这样吗?--

public static void main(String... args)

问题答案:

main(String... args)main (String[] args)实际上是相同的事情:什么你得到一个String数组。varargs只是调用者的语法糖。

我猜想就像您从没有main()从代码中调用过的那样,在引入varargs时并没有对其进行改进。

编辑 :其实,刮开最后一句话。main(String... args)当然是完全有效的语法。两种样式可以完全互换。这很好用:

public class Test {

    public static void main(String... args) {
        System.out.println("Hello World");
    }

}


 类似资料:
  • 子弹长度调整不了 目前只完成一些 但飞船子弹完成了 具体情况请看 https://www.bilibili.com/video/BV1nMYCeAEo3?t=3.6 新情况 https://www.bilibili.com/video/BV1wMe7ewEho?t=10.4 修改了参数还是不行 把子弹长度改成0还是很长

  • 支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数。 package main import "fmt" // 这个函数可以传入任意数量的整型参数 func sum(nums ...int) { fmt.Print(nums, " ") total := 0 for _, num := range nums {

  • 基本上,我试图用一个名为“a”的变量设置数组的长度,并将其声明为3和int。当我试图用for循环查看所有元素时,我不会将“null”作为元素。到现在为止,一直都还不错。然而,当有人想向该数组中添加一个元素时,我会向提到的变量“a”中添加1,从而延长该数组的长度,并允许我向该数组中再添加一个元素。但它不起作用。以下是代码: }

  • 问题内容: 我有这个代码: 为什么几次打印后会变成负片?如果超出范围,是否不应该发生错误? 问题答案: 如果将数字增加到最大值之后,Java不会抛出错误。如果您希望具有此行为,则可以使用Java 8中的方法。如果传递,则该方法将引发。 Java不会引发异常并且您收到负数的原因与数字的存储方式有关。对于长原语,第一个字节用于指示数字的符号(0->正号,1->负号),其余字节用于数字值。这意味着最大的

  • 问题内容: 据我了解,一个由固定数量的元素组成,一个与您传递(相同类型)的参数数量一样多。但是他们是一样的吗?我可以通过一个期望的地方吗? 问题答案: 是的,如果您有一个带有varargs参数的方法,例如: 您这样称呼它: 然后编译器将其转换为: 参数的类型为,可以像其他数组变量一样使用。请注意,它 可能 仍然是: 有关更多信息,请参见varargs的文档。 但这 并不 意味着可变参数与阵列互换-

  • 问题内容: 我正在参加本地社区大学的数据结构和算法课程,很有趣。该课程的教科书是Y. Daniel Liang的 Java编程简介,第10版 。这本书本身很扎实。 在处理中,Liang提到了Java的“可变长度”参数。他写道(第265页): Java将可变长度参数视为数组。您可以将数组或可变数量的参数传递给可变长度参数。当调用带有可变数量参数的方法时,Java创建一个数组并将参数传递给它。 一个例