黑马程序员技术交流社区

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

作者: 火麒麟    时间: 2013-10-10 11:09
标题: 自定义泛型
import org.junit.Test;

public class demo6 {
   
   
    public <T> T 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--;
        }
        
        return (T) arr;
    }

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


//在源码上修改就可以啊


作者: 飘落    时间: 2013-10-10 11:44
T代表一个引用类型,而int是一个基本类型,所以无法传递。把int[]改成Integer[] 就可以了。
  1. public class Reverse {

  2.         public static void main(String[] args) {
  3.                 Integer[] arr = { 2, 0, 1, 3, 1, 0, 1, 0 };
  4.                 reverse(arr);
  5.                 for (int i : arr) {
  6.                         System.out.print(i + " ");
  7.                 }
  8.         }

  9.         public static <T> void reverse(T[] arr) {
  10.                 for (int left = 0, right = arr.length - 1; left < right; left++, right--) {
  11.                         T temp = arr[left];
  12.                         arr[left] = arr[right];
  13.                         arr[right] = temp;
  14.                 }
  15.         }

  16. }
复制代码

作者: To    时间: 2013-10-10 12:47

楼主你好。如果问题已解决请及时将帖子状态改为提问结束,如果未解决请继续提问。谢谢合作




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