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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© muzigejin 黑马帝   /  2012-1-15 23:52  /  2145 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class demo1 {
  2. public static void main(String[] args) {
  3.                 Integer[] arr = {1,2,3};
  4.                 //int [] arr = {1,2,3};//错误
  5.                 reverse(arr);
  6.         }

  7.         public static <T> void reverse(T[] arr) {
  8.         //方法体省略
  9.         }
  10. }
复制代码
问题一:reverse(T[] arr)方法,传入的参数必须是对象类型,不能是基本数据类型的数组
问题二:如果         public static <T> void reverse(T[] arr) {}方法写成有返回值的泛型方法,该如何编写,
        main方法该如何调用。

1 个回复

倒序浏览
问题一:java的泛型不支持基本数据类型。

问题二:
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 Integer[] arr = {1,2,3};
  4.                 Object[] obj=reverse(arr);
  5.                 for(Integer a:arr)
  6.                         System.out.println(a);
  7.                 for(Object o:obj)
  8.                         System.out.println(o);
  9.         }

  10.         public static <T> T[] reverse(T[] arr) {
  11.                 // Object[] temp=new Object[10];
  12.                 int len=arr.length;
  13.                 T[] temp = (T[])new Object[len];
  14.                 for (int i = 0; i < len; i++)
  15.                         temp[i]=arr[len-i-1];
  16.                 for (int i = 0; i < len; i++)
  17.                                         arr[i]=temp[i];
  18.                 return temp;
  19.         }

  20. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马