黑马程序员技术交流社区

标题: 自定义泛型问题 [打印本页]

作者: 雪龙    时间: 2013-12-19 17:14
标题: 自定义泛型问题
  1. public class SwapArr {
  2.         public static void main(String[] args) {

  3.                 int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  4.                 swapArr(arr);//这里为什么不能调用这个方法,提示是
复制代码


作者: 雪龙    时间: 2013-12-19 17:21
  1. public static <T> void swapArr(T[] arr) {
  2.                 int length = arr.length;
  3.                 int i = 0;
  4.                 int j = length;
  5.                 while (i < j) {
  6.                         T temp = arr[i];
  7.                         arr[i] = arr[j];
  8.                         arr[j] = temp;
  9.                         i++;
  10.                         j--}不知道为什么就把我的这段代码给吞了,在这里补上
复制代码

作者: 四五六七八    时间: 2013-12-19 17:36
有一点你搞错了  只有基本数据类型能自动拆箱包厢,,,数组类型不会
int【】-------> [ I
Integer[]------》[Ljava.lang.Integer
这里不存在拆箱装箱  类型不匹配

作者: lichao    时间: 2013-12-19 21:16
对原有代码更改
  1. public class SwapArr {
  2.     public static void main(String[] args) {

  3.             int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
  4.             swapArr(arr);//int类型数组传出的是[I 函数的参数不能识别的类型 T 不能转化为int类型
  5. for(int i=0;i<arr.length;i++)
  6.         System.out.println(arr[i]);
  7.     }
  8.     public static <T> void swapArr(T...arr) {//更改成可变参数就可以了,jdk1.5新特性
  9.         int length = arr.length;
  10.         int i = 0;
  11.         int j = length-1;
  12.         while (i < j) {
  13.                 T temp = arr[i];
  14.                 arr[i] = arr[j];
  15.                 arr[j] = temp;
  16.                 i++;
  17.                 j--;
  18.                 }  
  19.         }
  20. }
复制代码

作者: 雪龙    时间: 2013-12-19 21:53
楼主大人啊。我这个不会给贴子的分类了????
作者: FFF    时间: 2013-12-19 22:19
本帖最后由 FFF 于 2013-12-19 22:21 编辑
雪龙 发表于 2013-12-19 21:53
楼主大人啊。我这个不会给贴子的分类了????

什么??需要分类的话,点击编辑就可以重新分类了。
作者: 雪龙    时间: 2013-12-21 09:34
我的没找见编辑啊。




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