给定这个函数签名:
public static void test(final String... args) {}
我想将一个字符串和一个字符串数组放入args
:
test("a", new String[]{"b", "c"});
但这是不可能的,因为第二个参数没有展开。
那么是否可以扩展数组以适应可变参数?
如果这不可能,给定一个字符串和一个字符串数组,构造串联字符串数组的最短方法是什么?例如:
String a = "a";
String[] b = new String[]{"b", "c"};
String[] c = // To get: "a", "b", "c"
谢谢。
最佳答案
您可以使用 Guava's ObjectArrays.concat(T, T[])
方法:
String a = "a";
String[] b = new String[]{"b", "c"};
String[] c = ObjectArrays.concat(a, b);
注意参数的顺序。使用 (b, a)
调用也可以,但这会将元素附加到数组而不是前置(这似乎是您想要的)。这在内部使用 System.arraycopy()
方法。
关于java - 扩展数组以传递给可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22985279/