2 qq 31930741 qq_31930741 于 2016.04.07 20:50 提问

Java中关于泛型的问题,谢谢了

public class FanXing {
public static void main(String[] args) {
int[] arr={1,23,4,6,7};
reverse(arr);//这里提示报错,怎么回事,调用不了
}

public static <T> void reverse(T[] arr){
    for(int startIndex=0,endIndex=arr.length-1;startIndex<endIndex;startIndex++,endIndex--){
        T temp=arr[startIndex];
        arr[startIndex]=arr[endIndex];
        arr[endIndex]=temp;
    }
    System.out.println(Arrays.toString(arr));
}

}

    reverse(arr);//这里提示报错,怎么回事,调用不了   求帮忙,谢谢各位了

8个回答

caozhy
caozhy   Ds   Rxr 2016.04.07 23:34
已采纳

int[] arr={1,23,4,6,7};
->
Object[] arr={1,23,4,6,7};

http://blog.csdn.net/orzlzro/article/details/7017435

Java不支持声明泛型数组,更确切地表达是:数组的类型不可以是类型变量,除非是采用通配符的方式

xuan521521
xuan521521   2016.04.21 10:41

int 基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。
Integer是int的封装类,里面有很多进行处理的静态方法

Integer是对象而int不是,内存的分配位置也不一样
Integer的属性和其他类一样的!在方法里都是引用传递,而原始类型是值传递!
泛型是针对Object的而int不是,int 改为 Integer即可

qq_31930741
qq_31930741 谢谢
一年多之前 回复
sarazeng
sarazeng
一年多之前 回复
tcytcy123
tcytcy123 理论正确,顶
一年多之前 回复
tcytcy123
tcytcy123 理论正确,顶
一年多之前 回复
CSDNXIAOS
CSDNXIAOS   2016.04.07 21:02

java中的泛型,泛型是属于后来新增的,......
答案就在这里:java 泛型问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

u010932348
u010932348   2016.04.08 16:19

int[] arr={1,23,4,6,7};
changeto
Integer[] arr={1,23,4,6,7};

Heel_Boy
Heel_Boy   2016.04.14 17:06

泛型能这么用吗,玩出新花样

lovebosom
lovebosom   2016.04.21 12:34

把int[] arr={1,23,4,6,7}; 改为Integer类型或Object类型都可以,我试过了,原因就是因为java暂不支持 泛型数组

menm91
menm91   2016.04.23 19:17

泛型不支持基础类型,int改为Integer.

donggua3694857
donggua3694857   Rxr 2016.04.28 12:30

int属于基础数据类型。泛型不包含这些。改成Integer就可以了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!