【发布时间】:2011-05-25 12:57:37
【问题描述】:
为什么第一次调用 someMethod 没有明确指出它是 String[] 就无法编译?
可以使用数组初始值设定项来创建 String[] 数组,但不能使用它来传递参数。花括号是否以其他方式用于传递参数,从而破坏了我期望它的行为方式?
public void someMethod(String[] arr){
//do some magic
}
public void makeSomeMagic(){
String[] arr = {"cat", "fish", "cow"};
//Does not compile!
someMethod({"cat", "fish", "cow"});
//This compiles!
someMethod(new String[]{"cat", "fish", "cow"});
//This compiles!
someMethod(arr);
}
编译错误如下:
Moo 类型中的 someMethod(String[]) 方法不适用于参数 (String, String, String)
【问题讨论】:
-
仅在申报时允许。这是一个语法问题