Java方法组合了一个数组列表:可变数量的参数

时间:2016-05-13 14:47:31

标签: java arrays methods variadic-functions

组合数组列表的方法:可变数量的数组。 方法签名

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

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

为可变数量的数组定义方法签名的正确方法是什么。感谢。

1 个答案:

答案 0 :(得分: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
} 

当然这段代码不会组合数组,但是方法调用会编译。