黑马程序员技术交流社区

标题: 在myeclipse中 reverse报错,求解释 [打印本页]

作者: 火麒麟    时间: 2013-10-8 16:41
标题: 在myeclipse中 reverse报错,求解释
import org.junit.Test;

public class demo6 {
       
        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;
                        start++;
                        end--;
                }               
        }

        @Test
        public void test(){
                int[] arr = {2,6,3};
                int[] ar = reverse(arr);
                for(int i : ar){
                        System.out.println(i);
                }
               
        }

       
}
作者: 滔哥    时间: 2013-10-8 16:49
到最新26  27期交流版块提问
作者: To    时间: 2013-10-8 16:55
哥们以后有问题来26,27版块吧。
作者: 落木萧萧    时间: 2013-10-8 17:01
报的错误也贴上来啊
作者: winsking    时间: 2013-10-8 20:22
public <T> void reverse(T arr[])
这是你的方法定义,这个定义有问题吧,写法很飘逸,最好参数应该是T[] arr,
还有返回值是void,那就是没有返回值,那怎么能int[] ar = reverse(arr);呢?
你应该在方法主体中下面加上一个return arr;

作者: 诗化了邂逅    时间: 2013-10-8 20:31
仅个人理解:因为调用的是reverse(T arr[])方法,参数是泛型数组,而它赋的值是整型数组,转换时会报错。

作者: To    时间: 2013-10-9 08:41
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
作者: 火麒麟    时间: 2013-10-9 08:54
诗化了邂逅 发表于 2013-10-8 20:31
仅个人理解:因为调用的是reverse(T arr[])方法,参数是泛型数组,而它赋的值是整型数组,转换时会报错。
...

是这种错误,应该怎么解决呢
作者: 诗化了邂逅    时间: 2013-10-9 14:08
火麒麟 发表于 2013-10-9 08:54
是这种错误,应该怎么解决呢

只是感觉错误在那,怎么改还真的不知道~~sorry了哈。
作者: To    时间: 2013-10-10 10:45

如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
作者: 火麒麟    时间: 2013-10-10 15:06
怎么改为提问结束




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