我想知道,为什么我不能使用 {"a", "b"} 作为字符串数组方法参数的输入?
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"});
}
我想知道,为什么我不能使用 {"a", "b"} 作为字符串数组方法参数的输入?
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"});
}
数组初始值设定项语法仅在变量声明的一部分直接有效。在其他任何地方 - 包括以后的分配 - 您必须使用数组创建表达式:
fun(new String[] { "a", "b" });
我怀疑这使得语言在如何指定方面更简单,基本上。
你应该使用:
fun(new String[]{"a","b"});
在java中,甚至一个字符串数组也被视为对象。您期望 Strings 数组的对象作为fun
参数。这个对象是由String[]{"a","b"}
which 提供的,它是一个anonymous String array
完全构造和初始化的对象。