【发布时间】:2011-07-02 12:41:20
【问题描述】:
我们在main方法中写String[]a和String...a有什么区别?
public static void main(String[]a)
和
public static void main(String...a)
【问题讨论】:
我们在main方法中写String[]a和String...a有什么区别?
public static void main(String[]a)
和
public static void main(String...a)
【问题讨论】:
第一个需要一个参数,它是一个字符串数组。
第二个接受零个或多个字符串参数。它还接受一个字符串数组。
【讨论】:
public static void main(String[] a)
必须使用 String[] 类型的单个参数或 null 调用此参数。
public static void main(String...a)
可以使用单个 String[] 类型的参数调用此函数,或者使用任意数量的 String 参数调用,例如 main("a","b","c")。但是,如果您传递 null,编译器会报错,因为它无法判断您是指值为 null 的 String[],还是包含 1 个 null 字符串的数组。
在main() 中,无论哪种情况,变量a 都是String[]。
既然是main,你可能不会想怎么称呼它……通常是第一件事。但是我已经切换到对所有电源使用第二种形式。将参数传递给它进行测试更容易。
【讨论】:
第二个称为varargs,是在Java 5 中引入的。当您需要向方法传递零个或多个参数时,它使您无需显式创建数组。
【讨论】: