如何传递函数数组文字?

时间:2013-10-23 05:38:55

标签: java arrays

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

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

6 个答案:

答案 0 :(得分:11)

{"foo"}没有告诉Java你要创建什么类型的数组... 相反,尝试类似......

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

答案 1 :(得分:1)

您可以使用new创建一个数组,而不使用新变量

您期望的正确语法是

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

似乎,您刚开始使用arrays。还有许多其他语法来声明array

答案 2 :(得分:0)

使用in-line数组声明

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

答案 3 :(得分:0)

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

    public static void takesStringArray(String[] argument) {
        System.out.println(argument);
    }
}

答案 4 :(得分:0)

你可以试试VarArgs

class Test{
    public static void main(String[] args){
        takesStringArray("foo", "bar");
    }
    public static void takesStringArray(String... argument){
        System.out.println(argument);
    }
}

答案 5 :(得分:0)

您可以使用varargs:

  

class Test {       public static void main(String [] args){           takesStringArray( “富”);       }

public static void takesStringArray(String... argument) {
    System.out.println(argument);
} 
     

}