我有以下代码
String[] args = {"a", "b", "c"};
method(args);
private void method(String[] args){
return args;
}
为什么我不能在没有错误的情况下执行以下操作?
method({"a", "b", "c"});
此代码仅用于证明重点,而不是我使用的实际方法。我想做第二种方法来清理我的代码,并且当我只使用它们一次传递给我的方法时,避免声明十几个不同的数组。
问题的核心是将字符串数组作为方法参数传递的最有效方法是什么。
答案 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不知道你是否想要一个String
或Object
的数组。您可以明确告诉java它是什么类型的数组:
method(new String[] { "a", "b", "c"});
这样Java就可以说明你的意思是一个String
的数组。
答案 3 :(得分:2)
您不需要对数组的命名引用。您可以初始化并传递一个匿名数组,如下所示:
method (new String[]{"a", "b"});