我在想,为什么我不能使用{“a”,“b”}作为String数组方法参数的输入?
public static void fun(String[] s) {
}
public static void main(String[] args) {
String[] s = {"a", "b"};
// OK
fun(s);
// This line is not accepted by compiler
fun({"a", "b"});
}
答案 0 :(得分:6)
当变量声明的一部分时,数组初始化程序语法仅对直接有效。在其他任何地方 - 包括以后的分配 - 你必须使用数组创建表达式:
fun(new String[] { "a", "b" });
我怀疑这使得语言在指定的方式上更简单。基本上。
答案 1 :(得分:1)
您应该使用:
fun(new String[]{"a","b"});
在java中,即使将一个字符串数组视为对象。您期望Strings数组的对象为fun
参数。此对象由String[]{"a","b"}
提供,anonymous String array
是完全构造和初始化的{{1}}。