private static <T> void swap(T[] a,int i,int j){
T tmp = a[i];
a[i] = a[j];
a[j] = a[i];
}
这个<T>的尖括号的作用就是声明T是泛型。
swap(new String[]{"abc","xyz","itcase"},1,2);
为什么不用
swap(new int[]{"1,2,3,4"},1,2);
泛型要求所实际参数必须为引用类型,基本类型不行。为什么int[]不能自动拆箱和装箱,因为编译器以为你想要的就是一个数组呢,强制自从拆箱和装箱岂不是弄巧成拙?