在线搜索,我找到了一个可以合并数组的方法。它被设计为根据需要和任何数据类型获取尽可能多的参数。这就是我需要它做的,但我不知道如何正确地调用它!这是方法的样子:
public static <T> T[] arrayMerge(T[]... arrays)
{
blah blah blah
}
我能想到的唯一方法就是byte[] result = arrayMerge(a, b, c);
(其中a,b和c都是指byte [] s),但这不起作用。我怎么称呼它?谢谢!
答案 0 :(得分:5)
我认为泛型类型只能用于类,而不能用于原始类型。因此,它们适用于Byte[]
,而非byte[]
。
答案 1 :(得分:0)
您可以轻松地将该方法更改为非泛型,并且如果这是您想要的,则特定于byte[]
。例如(不确定它是否是最好的impl):
public static byte[] arrayMerge(byte[]... arrays) {
int count = 0;
for (byte[] array : arrays)
count += array.length;
byte[] mergedArray = new byte[count];
int start = 0;
for (byte[] array : arrays) {
System.arraycopy(array, 0, mergedArray, start, array.length);
start += array.length;
}
return mergedArray;
}
然后使用:
byte[] result = arrayMerge(new byte[0], new byte[0], new byte[0]);