2 回答
TA贡献1833条经验 获得超4个赞
您可以声明一个新setTask(String, String...)方法,也可以创建一个包含附加字符串的数组:
public void setSpecialTask(String... constructorArgs) {
String[] args = new String[constructorArgs.length + 1);
args[0] = "SpecialTask";
System.arraycopy(constructorArgs, 0, args, 1, constructorArgs.length);
setTask(args);
}
TA贡献1795条经验 获得超7个赞
数组具有固定结构。这意味着一旦实例化就无法扩展(或减小)其大小。
因此,要实现您的要求,您必须创建一个具有所需容量的新阵列。
作为替代方法,虽然不是最有效的方法(使用小列表就可以了),将数组转换为List,添加缺少的元素并将其转换回数组:
public void setSpecialTask(String... constructorArgs) {
String[] array = Arrays.asList("SpecialTask", constructorArgs)
.toArray(new String[constructorArgs.length+1]);
setTask(array);
}
或者List在 Java 8 中既简单又高效(不需要任何中介):
String[] array = Stream.of("SpecialTask", constructorArgs)
.toArray(String[]::new);
setTask("SpecialTask", array);
添加回答
举报