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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 火麒麟 中级黑马   /  2013-10-8 16:41  /  1477 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

       
}

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

10 个回复

倒序浏览
到最新26  27期交流版块提问
回复 使用道具 举报
To 金牌黑马 2013-10-8 16:55:43
藤椅
哥们以后有问题来26,27版块吧。
回复 使用道具 举报
报的错误也贴上来啊
回复 使用道具 举报
public <T> void reverse(T arr[])
这是你的方法定义,这个定义有问题吧,写法很飘逸,最好参数应该是T[] arr,
还有返回值是void,那就是没有返回值,那怎么能int[] ar = reverse(arr);呢?
你应该在方法主体中下面加上一个return arr;

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
仅个人理解:因为调用的是reverse(T arr[])方法,参数是泛型数组,而它赋的值是整型数组,转换时会报错。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

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

是这种错误,应该怎么解决呢
回复 使用道具 举报
火麒麟 发表于 2013-10-9 08:54
是这种错误,应该怎么解决呢

只是感觉错误在那,怎么改还真的不知道~~sorry了哈。
回复 使用道具 举报
To 金牌黑马 2013-10-10 10:45:26
10#

如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
回复 使用道具 举报
怎么改为提问结束
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马