/**
* Testing Arrays
* @author N002213F
* @version 1.0
*/
public class JavaArrays {
public void processNames(String[] arg) {
//-- patented method, stop, do not read ;)
}
public void test() {
// works fine
String[] names1 = new String[] { "Jane", "John" };
processNames(names1);
// works fine, nothing here
String[] names2 = { "Jane", "John" };
processNames(names2);
// works again, please procced
processNames(new String[] { "Jane", "John" });
// fails, why, are there any reasons?
processNames({ "Jane", "John" });
// fails, but i thought Java 5 [vargs][1] handles this
processNames("Jane", "John");
}
}
最佳答案
processNames({ "Jane", "John" });
这失败了,为什么,有什么原因吗?
您没有指定类型。 Java在这里不进行类型推断。它希望您指定这是一个字符串数组。 this question的答案也可能对此有所帮助
processNames("Jane", "John");
这也失败了,但是我认为Java 5 varargs可以解决这个问题
如果需要varargs,则应这样编写方法:
public void processNames(String... arg)
请注意
...
而不是[]
。仅接受数组并不能使您有权在该方法上使用varargs。