字符串数组初始化为构造函数参数

2022-09-01 12:55:00

在Java中,按以下方式初始化String数组是完全合法的:

String[] s = {"FOO", "BAR"};

但是,当尝试实例化将 String 数组作为参数的类时,不允许以下代码段:

Test t = new Test({"test"});

但这又有效:

Test t = new Test(new String[] {"test"});

有人能解释一下为什么会这样吗?


答案 1
String[] s = {"FOO", "BAR"};  

这仅在声明时允许

你不能

String[] s;
s={"FOO", "BAR"};  

答案 2

因为 是数组的初始化语法。仅在该特定上下文中以特定方式解释 。Type[] x = { ... }{ ... }