举个非泛型的例子: Object[] x = new String[10]; 甚至 Object[] y = new int[5][5]; 都可以,唯独下面的代码是错的 Object[] z = new int[10]; 简单说,就是T[] 需要至少是个Object[],但是int[], long[] 基本类型数组不是Object[] 子类。具体到你的问题,最简单,而且也对今后更加方便的修改方式是 public static <T> T getMiddle(T... a) { return a[a.length/2] }getMiddle(nums); getMiddle(1,2,3,4,5);参数传入的时候,会自动转成合适的数组
Object[] x = new String[10];
甚至
Object[] y = new int[5][5];
都可以,唯独下面的代码是错的
Object[] z = new int[10];
简单说,就是T[] 需要至少是个Object[],但是int[], long[] 基本类型数组不是Object[] 子类。具体到你的问题,最简单,而且也对今后更加方便的修改方式是
public static <T> T getMiddle(T... a) {
return a[a.length/2]
}getMiddle(nums);
getMiddle(1,2,3,4,5);参数传入的时候,会自动转成合适的数组