A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写了一个简单的泛型方法交换数组特定位置元素,但是测试一直不对
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;
        }
}

8 个回复

倒序浏览
int是基本类型,泛型要求是引用类型。
回复 使用道具 举报
fantacyleo 发表于 2015-4-11 14:18
int是基本类型,泛型要求是引用类型。

受教了,感谢!
回复 使用道具 举报
正确的代码 你看看

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;
    }
}

点评

可是你这里就不是写的泛型方法了呀  发表于 2015-4-11 14:45
回复 使用道具 举报
cjw379551618 发表于 2015-4-11 14:28
正确的代码 你看看

public class demo2 {

楼上说的很清楚了啊  int是基本类型,泛型要求是引用类型   你怎么使用?

点评

恩,我把int数组改成用Integer申明的了,现在已经可以了,谢谢~  发表于 2015-4-11 16:01
回复 使用道具 举报
用引用类型,Integer可以哈!
回复 使用道具 举报
受教了!~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马