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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史晓霞 黑马帝   /  2011-11-8 12:26  /  1584 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
这道题怎么回答呢?  以前视频中讲过。
如果把swap里的int 改为Integer就可以了。
简单说问题出在int[] 里存放的是基本数据类型,而不是引用类型。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 刘福双 于 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类的子类或子孙

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
刘福双 发表于 2011-11-8 13:09
public class as {
       
        public static void main(String[] args){

你那个加上Integer后还会报错吗?   我编译运行都没有问题啊   
如果没问题最少也要把后面那句话个删了好吧 。
呵呵
回复 使用道具 举报
海林 发表于 2011-11-8 13:12
你那个加上Integer后还会报错吗?   我编译运行都没有问题啊   
如果没问题最少也要把后面那句话个删了好 ...

恩  大意了!!!
回复 使用道具 举报
呵呵 !
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马