在 Java 中定义一个字符串数组
Posted
技术标签:
【中文标题】在 Java 中定义一个字符串数组【英文标题】:Define a String array in Java 【发布时间】:2013-08-15 10:00:31 【问题描述】:在java中我们可以将main()
方法定义为这两种方式。
public static void main(String[] args)
System.out.println("Hello World");
.
public static void main(String... args)
System.out.println("Hello World");
这两种方法都采用 array
的 String
参数。现在考虑以下场景。
String[] arr=new String[10]; // valid
String... arr=new String[10];// invalid
Java
绝不允许以这种方式创建数组String... arr=new String[10];
。但在上述方法实现中java
允许这样做。我的问题是java
如何在两种情况下实现这两种不同的行为?
【问题讨论】:
我喜欢这个问题,因此投了赞成票。 【参考方案1】:...
是方法参数的语法,而不是变量定义的语法。这个符号的名称是varargs,这是不言自明的,即可变数量的参数。
【讨论】:
【参考方案2】:Variable argument or varargs(...) 在 Java 中用于编写更灵活的方法,这些方法可以接受尽可能多的参数来进行初始化。
【讨论】:
【参考方案3】:您可以在main
中使用可变参数,因为用可变参数 (...) 声明的方法与带数组参数的方法声明的字节码兼容(为了向后兼容)。这并不意味着类型声明允许使用相同的语法。
【讨论】:
【参考方案4】:...
指的是 varargs,其主要目的是使方法更具可读性。
void method(String... args)
可以称为
method("a");
或 method("a", "b");
或 method("a", "b", "c");
我认为在变量声明中使用它没有意义,我们无能为力
String... a = "a", "b"
数组无论如何都可以声明为动态大小
String[] arr = "a";
或
String[] arr = "a", "b";
【讨论】:
以上是关于在 Java 中定义一个字符串数组的主要内容,如果未能解决你的问题,请参考以下文章