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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李会成 中级黑马   /  2013-2-1 16:32  /  1139 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-2-1 19:53 编辑

我定义了一个泛型方法,我要求返回一份泛型数组,这个数组可以存放任意类型的数据,

返回类型是泛型 那么我该用怎么定义接收这个泛型数组?

例如:T []  m=add("sss",1,2,3);  这样在主方法中定义的话报错

那么我该如何取得add()方法返回的泛型数组?
  1. public <T> T[] add(T... s)
  2.         {
  3.                
  4.                 return s;
  5.         }
复制代码

3 个回复

倒序浏览
public class GenericTest {

  public <T>  T[] add(T[] s)
  {
          return s;
  }
  public static void main(String[] args)
  {
          GenericTest gt=new GenericTest();
          Object[] t1=new Object[]{"sss",1,2,3};
          Object[] t2=gt.add(t1);
  }
}
朋友,T是你在泛型方法定义时针对任意类型的一个代表符号。但是请记住,在方法调用的时候,必须有确定的数组对象类型。如果你想要做的是一个存放各种类型的数组,最好的就是使用Object。Object是所有类的父类。希望你多关注一下java的继承特性,对你进一步学习很有帮助。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
      我要提醒的是,一个数组里放各种毫不相干的数据类型的数据并不是好的编程思路。数组的连续存放确定个数的同类型的数据。
回复 使用道具 举报
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。

请勿再次发此类帖子了!

此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马