sp0*_*00m 6 java arrays variadic-functions
鉴于变量:
Object[] ab = new Object[] { "a", "b" };
Object[] cd = new Object[] { "c", "d" };
Run Code Online (Sandbox Code Playgroud)
调用以下方法时:
public static void m(Object... objects) {
System.out.println(Arrays.asList(objects));
}
Run Code Online (Sandbox Code Playgroud)
使用:
m(ab, cd);
Run Code Online (Sandbox Code Playgroud)
我得到了预期的输出:
[[Ljava.lang.Object;@3e25a5, [Ljava.lang.Object;@19821f]
Run Code Online (Sandbox Code Playgroud)
但使用时:
m(ab);
Run Code Online (Sandbox Code Playgroud)
我明白了:
[a, b]
Run Code Online (Sandbox Code Playgroud)
由于strings <- ab不strings[0] <- ab.
如何强制编译器将ab数组作为数组的第一个值strings,然后输出:
[Ljava.lang.Object;@3e25a5
Run Code Online (Sandbox Code Playgroud)
?