用Java定义String数组

时间:2013-08-13 16:58:59

标签: java arrays string main

在java中,我们可以将main()方法定义为这两种方式。

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

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

两种方法都需要arrayString个参数。现在考虑以下情况。

    String[] arr=new String[10]; // valid
    String... arr=new String[10];// invalid 

Java永远不允许以这种方式String... arr=new String[10];创建数组。但在上面的方法实现java允许这样做。我的问题是java如何在两种情况下实现这两种不同的行为?

4 个答案:

答案 0 :(得分:4)

... 

是方法参数的语法,而不是变量定义的语法。这种表示法的名称是varargs,它是自解释的,即可变数量的参数。

答案 1 :(得分:1)

Java中的

Variable argument or varargs(...) 用于编写更灵活的方法,可以接受尽可能多的参数而不需要进行初始化。

答案 2 :(得分:1)

...指的是 varargs ,其主要目的是使方法更具可读性

void method(String... args) {

}

可以称为

method("a");method("a", "b");method("a", "b", "c");

我认为在变量声明中使用它没有意义,我们用

做不了多少
String... a = {"a", "b"}

无论如何,数组都可以用动态大小声明

String[] arr = {"a"};

OR

String[] arr = {"a", "b"};

答案 3 :(得分:0)

您可以在main中使用varargs,因为使用varargs(...)声明的方法与带有数组参数的方法声明(为了向后兼容)兼容。这并不意味着类型声明允许使用相同的语法。