你看一下我这个程序大概就能明白了
//交换任意一种类型的数组的第i个和第j个元素
String [] strings = new String[]{"abc","zpf","def"};
swap(strings, 0, 2);
for (String s:strings) {
System.out.println(s);
}
//但是int等基本类型却不行
//swap(new int[]{1,2,3}, 1, 2);编译器会报错,这是因为编译器不会对new int[3]再进行拆箱与装箱了,因为现在new int[3]本身就是一个对象
//编器也不知道你要的是int 还是对象 所以它就会报错,如果你要的正好是对象,它却给你拆成数字了 你能愿意吗?所以它就不解决不了了,就会报错。
private static <T> void swap(T[] array,int i,int j) {
T temp = array[i];
array[i]=array[j];
array[j]=temp;
} |