2016-05-13 2 views
0

Метод объединения списка массивов: переменное количество массивов. Метод подписиМетоды Java объединяют список массивов: переменное количество аргументов

public static <T> T[] combine(T[] ... a) { 
    ... 
} 

byte[] a = []; 
byte[] b = []; 
byte[] c = []; 
combine(a, b, c); // compiling error 

Что такое правильный способ определить сигнатуру метода для переменного числа массивов. Благодарю.

+0

Не знаете, почему вы получаете downvoted. Это правильный вопрос. – f1sh

+0

Даже если у трех массивов были непримитивные элементы, как бы вы создали новый массив 'T', чтобы объединить их? –

ответ

3

Это потому, что вы не можете заменить примитивные типы T.

Попробуйте использовать класс-обертку Byte:

public static void main(String[] args) { 
    Byte[] a = new Byte[]{0x0}; 
    Byte[] b = a; 
    Byte[] c = a; 
    combine(a, b, c); 
} 
public static <T> T[] combine(T[] ... a) { 
    //do your magic here 
} 

Конечно, этот код не объединить массивы, но вызов метода компилирует.

Смежные вопросы