Java 如何向函数传递数组文字?
如何传递数组而不使其成为单独的变量?例如,我知道这是可行的:Java 如何向函数传递数组文字?,java,arrays,Java,Arrays,如何传递数组而不使其成为单独的变量?例如,我知道这是可行的: class Test{ public static void main(String[] args){ String[] arbitraryStrings={"foo"}; takesStringArray(arbitraryStrings); } public static void takesStringArray(String[] argument){ Sy
class Test{
public static void main(String[] args){
String[] arbitraryStrings={"foo"};
takesStringArray(arbitraryStrings);
}
public static void takesStringArray(String[] argument){
System.out.println(argument);
}
}
但是我不想让数组成为变量,因为它只在这里使用。有没有办法做到这一点:
class Test{
public static void main(String[] args){
takesStringArray({"foo"});
}
public static void takesStringArray(String[] argument){
System.out.println(argument);
}
}
您可以使用
new
创建数组,而不使用新变量
您期望的正确语法是
takesStringArray(new String[]{"foo"});
看起来,您刚刚开始使用数组
。有许多其他语法可以声明数组
{“foo”}
没有告诉Java您试图创建什么类型的数组
相反,试着像
takesStringArray(new String[] {"foo"});
使用
行内
数组声明
试一试
你可以试试:
您可以使用varargs:
class Test {
public static void main(String[] args) {
takesStringArray("foo");
}
public static void takesStringArray(String... argument) {
System.out.println(argument);
}
}
可能考虑重复查看Groovy:在Groovy中,您可以随意定义列表文本。太好了!
class Test {
public static void main(String[] args) {
takesStringArray(new String[]{"foo"});
}
public static void takesStringArray(String[] argument) {
System.out.println(argument);
}
}
class Test{
public static void main(String[] args){
takesStringArray("foo", "bar");
}
public static void takesStringArray(String... argument){
System.out.println(argument);
}
}
class Test {
public static void main(String[] args) {
takesStringArray("foo");
}
public static void takesStringArray(String... argument) {
System.out.println(argument);
}
}