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);
    }  
}