黑马程序员技术交流社区

标题: 泛型 [打印本页]

作者: 史晓霞    时间: 2011-11-8 12:26
标题: 泛型
swap(new String[]{"abc","xyz","itcast"},1,2);//正确
swap(new int[]{1,2,3,4,3},3,4);//为什么错误

private static <T> void swap(T[] a,int i ,int j)
{
   T temp=a[i];
  a[i]=a[j];
  a[j]=temp;
}
作者: 海林    时间: 2011-11-8 13:00
这道题怎么回答呢?  以前视频中讲过。
如果把swap里的int 改为Integer就可以了。
简单说问题出在int[] 里存放的是基本数据类型,而不是引用类型。
作者: 刘福双    时间: 2011-11-8 13:09
本帖最后由 刘福双 于 2011-11-8 13:15 编辑

public class as {
       
        public static void main(String[] args){
                swap(new String[]{"abc","xyz","itcast"},1,2);//正确
                swap(new Integer[]{1,2,3,4,3},3,4);//正确        }

                private static <T> void swap(T[] a,int i ,int j)
                {
                   T temp=a;
                  a=a[j];
                  a[j]=temp;
                }


}


Java的数据分类分为两大类: 1。基本数据(int,short,float,byte)生成出来的变量不是具体对象,跟Object没有任何关系; 2。类数据:每个变量都是对象,所有对象都是Object类的子类或子孙
作者: 海林    时间: 2011-11-8 13:12
刘福双 发表于 2011-11-8 13:09
public class as {
       
        public static void main(String[] args){

你那个加上Integer后还会报错吗?   我编译运行都没有问题啊   
如果没问题最少也要把后面那句话个删了好吧 。
呵呵
作者: 刘福双    时间: 2011-11-8 13:15
海林 发表于 2011-11-8 13:12
你那个加上Integer后还会报错吗?   我编译运行都没有问题啊   
如果没问题最少也要把后面那句话个删了好 ...

恩  大意了!!!
作者: 海林    时间: 2011-11-8 13:21
呵呵 !




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