Java 为什么我不能使用{quot;a";,“b";}作为字符串数组方法参数的输入

Java 为什么我不能使用{quot;a";,“b";}作为字符串数组方法参数的输入,java,Java,我想知道,为什么我不能使用{“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"}); } 你应使用: fu

我想知道,为什么我不能使用{“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"});
在java中,甚至字符串数组也被视为对象。您需要字符串数组的对象作为
fun
参数。该对象由
String[]{“a”,“b”}
提供,这是一个
匿名字符串数组
,完全构造并初始化。

来自:

数组由数组创建表达式()或数组初始值设定项()创建

数组初始值设定项语法仅在作为变量声明的一部分时直接有效。在其他任何地方(包括以后的指定),都必须使用数组创建表达式:

fun(new String[] { "a", "b" });

我怀疑这基本上使语言的指定方式更简单。

java不是这样定义的。