如何使变量方法将单个数组作为varargs数组的第一个值?

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 <- abstrings[0] <- ab.

如何强制编译器将ab数组作为数组的第一个值strings,然后输出:

[Ljava.lang.Object;@3e25a5
Run Code Online (Sandbox Code Playgroud)

Sud*_*kar 9

在经过时你可以得到你想要的东西 -

m((Object)ab);
Run Code Online (Sandbox Code Playgroud)