黑马程序员技术交流社区

标题: 为什么会报错呀??? [打印本页]

作者: 黑马无敌    时间: 2015-6-30 11:03
标题: 为什么会报错呀???
  1. public class Test1 {
  2.         @Test
  3.         public void test(){
  4.                 int arr[] = {1,2,3,4,5,6,7,8,9};
  5.                 reverse(arr);
  6.         }

  7.        
  8.        
  9.         //编写一个泛型方法,实现数组反转
  10.         public <T> void reverse(T arr[]){
  11.                 int start = 0;
  12.                 int end = arr.length-1;
  13.                 while(start<end){
  14.                        
  15.                         T temp = arr[start];
  16.                         arr[start] = arr[end];
  17.                         arr[end] = temp;
  18.                        
  19.                         start++;
  20.                         end--;
  21.                 }
  22.         }
  23. }
复制代码


QQ图片20150630110343.png (875 Bytes, 下载次数: 23)

QQ图片20150630110343.png

作者: PDH    时间: 2015-6-30 11:03
int改成Integer,泛型是针对对象的,不是针对基本数据类型,需要自动提升一下
作者: 彬彬有理    时间: 2015-6-30 11:25
public class test1 {

        public void test() {
                int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                reverse(arr);
        }

        // 编写一个泛型方法,实现数组反转
        public <T> void reverse(int[] arr) {
                int start = 0;
                int end = arr.length - 1;
                while (start < end) {

                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;

                        start++;
                        end--;
                }
        }
}
这样就不会报错了
作者: 黑马无敌    时间: 2015-6-30 12:52
彬彬有理 发表于 2015-6-30 11:25
public class test1 {

        public void test() {

我就是要定义一个泛型,你这样把泛型去掉了,就违背题目意思了,

不过我已经解决了这个问题了。。。
作者: zhangshuai_123    时间: 2015-7-1 16:38
没有实现 reverse方法
作者: xicheng26    时间: 2015-7-1 18:08
你的T是泛型默认的Object类,而你转换的的时候用的是int类型去接收的,int是基本类型,不可以用T这样的泛型,Int改成interge自动包装类型
作者: 逸舟213    时间: 2015-7-1 21:38
问题很好!
作者: joerk    时间: 2015-7-2 20:51
学习啦:lol
作者: Java黑马    时间: 2015-7-2 21:54
学习一下
作者: 炎舞霜冬    时间: 2015-7-2 22:07
这个问题我不会啊




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