Java,将String数组作为Method Parameter传递的最有效方法

时间:2013-07-30 07:29:05

标签: java arrays

我有以下代码

String[] args = {"a", "b", "c"};
method(args);


private void method(String[] args){
    return args;
}

为什么我不能在没有错误的情况下执行以下操作?

method({"a", "b", "c"});

此代码仅用于证明重点,而不是我使用的实际方法。我想做第二种方法来清理我的代码,并且当我只使用它们一次传递给我的方法时,避免声明十几个不同的数组。

问题的核心是将字符串数组作为方法参数传递的最有效方法是什么。

4 个答案:

答案 0 :(得分:16)

method(new String[]{ "a", "b", "c"});

系统知道它是一个新的字符串数组。

java不像php;)

答案 1 :(得分:6)

我怀疑你想使用varargs。您甚至不需要创建一个数组来发送可变长度参数。

String[] strings = method("a", "b", "c");

private String[] method(String... args){
    return args;
}

String[] strings = array("a", "b", "c");

private <T> T[] array(T... args){
    return args;
}

或者如果你想进一步浓缩

String[] strings = array("a, b, c");

private String[] array(String args){
    return args.split(", ?");
}

答案 2 :(得分:6)

如果您使用:

method({ "a", "b", "c"});

然后java不知道你是否想要一个StringObject的数组。您可以明确告诉java它是什么类型的数组:

method(new String[] { "a", "b", "c"});

这样Java就可以说明你的意思是一个String的数组。

答案 3 :(得分:2)

您不需要对数组的命名引用。您可以初始化并传递一个匿名数组,如下所示:

method (new String[]{"a", "b"});