java - 扩展数组以传递给可变参数

标签 java

给定这个函数签名:

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/

相关文章:

java - java中的实时视频流

java - 移动已绘制的椭圆

java - 想要一个用于验证印度车辆号码格式的正则表达式吗?

java JScrollPane问题

java - Java 有 using 语句吗?

java - Netbeans 运行项目按钮已禁用

java - 重置 spring url。提交表单两次后附加 URL

java - 任务 ':app:processDebugResources'的执行失败。 >在索引4 android错误

java - ArrayList<>().contains(Object obj) 的行为

java - JDialog : Making some portion transparent