黑马程序员技术交流社区

标题: 泛型传参 [打印本页]

作者: 胡遇潮    时间: 2011-12-28 09:05
标题: 泛型传参
本帖最后由 胡遇潮 于 2011-12-28 10:58 编辑

public  <T> void reverse(T arr[])
{
                int start =0;
                int end = arr.length-1;
                while (true) {
                        if(start>=end)
                        {
                                break;
                        }
                        T temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                        end--;
                        start++;
                }
}

怎么传递一个任意类型的数组?
作者: 刘基军    时间: 2011-12-28 10:52
参数传递时注意:只能传引用类型的数组过去,不可以传递基本数据类型的数组。
  1. class Test
  2. {
  3.         public static void main(String [] args) throws Exception
  4.         {
  5.                 Integer [] it ={1,1,5,2,2};
  6.                 for(Integer i : it)
  7.                 {
  8.                                 System.out.print(i+" ");
  9.                 }
  10.                 System.out.println();
  11.                 new Test().reverse(it);
  12.                 for(Integer i : it)
  13.                 {
  14.                                 System.out.print(i+" ");
  15.                 }
  16.                
  17.                 //int [] i ={1,1,5,2,2};//编译失败,不可以传递基本数据类型的数组过去,只能传引用类型的数组
  18.                                                
  19.   }
  20.   public  <T> void reverse(T arr[])
  21.         {
  22.     int start =0;
  23.     int end = arr.length-1;
  24.     while (true) {
  25.       if(start>=end)
  26.       {
  27.               break;
  28.       }
  29.       T temp = arr[start];
  30.       arr[start] = arr[end];
  31.       arr[end] = temp;
  32.       end--;
  33.       start++;
  34.     }
  35.         }

  36. }
复制代码

作者: 胡遇潮    时间: 2011-12-28 10:59
monghuan 发表于 2011-12-28 10:52
参数传递时注意:只能传引用类型的数组过去,不可以传递基本数据类型的数组。 ...

汗颜,把这码事给忘了。




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