黑马程序员技术交流社区

标题: int数组为什么没法传给泛型方法 [打印本页]

作者: 小栀子    时间: 2015-4-11 14:10
标题: int数组为什么没法传给泛型方法
写了一个简单的泛型方法交换数组特定位置元素,但是测试一直不对
public class demo2 {
        @Test
        public void testa(){
                int arr[] = {1,2,3,4,5};
                swap(arr,2,3);//这边报错
                }
        public <T> T[] swap(T arr[],int a,int b){
                T temp = arr[a];
                arr[a] = arr[b];
                arr[b] = temp;
                return arr;
        }
}
作者: fantacyleo    时间: 2015-4-11 14:18
int是基本类型,泛型要求是引用类型。
作者: 小栀子    时间: 2015-4-11 14:24
fantacyleo 发表于 2015-4-11 14:18
int是基本类型,泛型要求是引用类型。

受教了,感谢!
作者: cjw379551618    时间: 2015-4-11 14:28
正确的代码 你看看

public class demo2 {
    @Test
    public void testa(){
            int arr[] = {1,2,3,4,5};
            swap(arr,2,3);//这边报错
           }
    public <T> int[] swap(int[] arr,int a,int b){
            int temp = arr[a];
            arr[a] = arr;
            arr = temp;
            return arr;
    }
}

作者: cjw379551618    时间: 2015-4-11 15:03
cjw379551618 发表于 2015-4-11 14:28
正确的代码 你看看

public class demo2 {

楼上说的很清楚了啊  int是基本类型,泛型要求是引用类型   你怎么使用?
作者: wkz_crystal    时间: 2015-4-11 20:20
用引用类型,Integer可以哈!
作者: 徐顺醒    时间: 2015-4-11 21:09
受教了!~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2