无法调用这种奇怪的方法(<t>)</t>

时间:2011-12-02 02:00:28

标签: java methods

在线搜索,我找到了一个可以合并数组的方法。它被设计为根据需要和任何数据类型获取尽可能多的参数。这就是我需要它做的,但我不知道如何正确地调用它!这是方法的样子:

public static <T> T[] arrayMerge(T[]... arrays)
{
    blah blah blah
}

我能想到的唯一方法就是byte[] result = arrayMerge(a, b, c);(其中a,b和c都是指byte [] s),但这不起作用。我怎么称呼它?谢谢!

2 个答案:

答案 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]);