当我们在main方法和String ... a?
中编写String [] a时有什么不同public static void main(String[]a)
和
public static void main(String...a)
答案 0 :(得分:8)
第一个期望一个参数,即一个字符串数组。
第二个接受零个或多个String参数。它还接受一个字符串数组。
答案 1 :(得分:8)
public static void main(String[] a)
必须使用String []类型的单个参数调用此函数,或者使用null。
public static void main(String...a)
这个可以使用String []类型的单个参数调用,或者使用任意数量的String参数调用,例如main(“a”,“b”,“c”)。但是,如果传递null,编译器会抱怨,因为它无法判断您是否为值为null的String []或1个空字符串的数组。
在main()
内,在任何一种情况下,变量a
都是String[]
。
因为它是main
,你可能不会考虑如何调用它......通常它是第一件事。但我已经转而使用第二种形式用于所有主电源;将参数传递给它进行测试会更容易。
答案 2 :(得分:3)
第二个名为varargs,并在Java 5中引入。当您需要将零个或多个参数传递给方法时,它可以使您免于显式创建数组。