2016-05-13 4 views
0

Eine Methode zum Kombinieren einer Liste von Arrays: variable Anzahl von Arrays. MethodensignaturJava-Methoden kombinieren eine Liste von Arrays: variable Anzahl von Argumenten

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

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

was die richtige Art und Weise ist die Methodensignatur für eine variable Anzahl von Arrays zu definieren. Vielen Dank.

+0

Nicht sicher, warum Sie downvoted werden. Es ist eine gültige Frage. – f1sh

+0

Selbst wenn die drei Arrays nicht-primitive Elemente hätten, wie würden Sie ein neues Array von 'T' erstellen, um sie zu kombinieren? –

Antwort

3

Das liegt daran, dass Sie primitive Typen nicht durch T ersetzen können.

Versuchen Sie, die Wrapper-Klasse Byte mit:

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 
} 

Natürlich ist dieser Code nicht die Arrays nicht kombinieren, aber der Aufruf der Methode kompiliert.