8

如何传递数组而不使其成为单独的变量?例如,我知道这有效:

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

6 回答 6

24

{"foo"}没有告诉 Java 任何关于您要创建的数组类型的信息......

相反,尝试类似...

takesStringArray(new String[] {"foo"});
于 2013-10-23T05:40:17.623 回答
2

您可以创建一个带有new和不带A 新变量的数组

您期望的正确语法是,

  takesStringArray(new String[]{"foo"});

似乎,您才刚刚开始使用arrays. 还有许多其他语法可以声明array.

于 2013-10-23T05:40:08.360 回答
1
class Test {
    public static void main(String[] args) {
        takesStringArray(new String[]{"foo"});
    }

    public static void takesStringArray(String[] argument) {
        System.out.println(argument);
    }
}
于 2013-10-23T05:41:40.623 回答
0

使用in-line数组声明

尝试

takesStringArray(new String[]{"foo"});
于 2013-10-23T05:40:50.943 回答
0

你可以试试VarArgs

class Test{
    public static void main(String[] args){
        takesStringArray("foo", "bar");
    }
    public static void takesStringArray(String... argument){
        System.out.println(argument);
    }
}
于 2014-04-01T11:52:59.457 回答
0

您可以使用可变参数:

class Test {
    public static void main(String[] args) {
        takesStringArray("foo");
    }

    public static void takesStringArray(String... argument) {
        System.out.println(argument);
    }  
}
于 2014-04-01T11:55:53.687 回答