我有一个String[]参数的函数.怎么可能这个:
String[] string = {"string1", "string2"};
myFunction(string);
Run Code Online (Sandbox Code Playgroud)
工作,而这:
myFunction({"string1", "string2"});
Run Code Online (Sandbox Code Playgroud)
不?它给了我错误:
Illegal start of expression not a statement ";" expected
独立的{"string1", "string2"}是语法糖:只有在声明和初始化数组时,编译器才能推断它应该是什么.但是,就它本身而言,这种语法不起作用:
String[] s1 = {"abc"}; // works
String[] s2;
s2 = {"abc"}; // error, need to explicitly use 'new String[]{"abc"}'
Run Code Online (Sandbox Code Playgroud)
另外,在您的情况下,您可以通过使用varargs来避免显式数组创建:
void myFunction(String... args) {
// args is a String[]
}
...
myFunction("string1", "string2");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |