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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 偏執旳、靑春 中级黑马   /  2013-3-21 22:16  /  2201 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 偏執旳、靑春 于 2013-3-22 12:45 编辑

1.java不能创建泛型数组吗?
2.在创建数组的时候,java数组不能使用参数化类型这句话怎么理解啊?
是说数组里面只能装数字吗?
3。参数化类型是个什么意思啊?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-22 12:44

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

1 个回复

倒序浏览
1、可以创建,但是由于创建泛型数组比较复杂,所以在实际的应用过程中一般会选择List的对泛型进行存储
2、有这么一个例子可以帮你理解,书上的
  1. class Generic { }
  2. public class ArrayofGeneric {
  3. public static void main(String[] args) {

  4. Generic[] genArr; /* * will throw ClassCastException :The problem is that arrays keep track of their actual type, and that type is * established at the point of creation of the array. So even though genArr has been cast to a Generic < Integer * >[] , that information only exists at compile time (and without the @SuppressWarnings annotation, you’d get a * warning for that cast). At run time, it’s still an array of Object, and that causes problems. */

  5. // genArr = (Generic[]) new Object[] {}; /* can not create a generic of array */ //

  6. genArr=new Generic[2]; genArr =(Generic[]) new Generic[2];

  7. System.out.println(genArr); } }
复制代码
--------------------------------------------------------
主要是说明在程序的执行过程中,泛型数组的类型信息会被擦除,且在运行的过程中数组的类型有且仅有Object[],如果我们强制转换成T[]类型的话,虽然在编译的时候不会有异常产生,但是运行时会有ClassCastException抛出

3、泛型的本质就是参数化类型,就是说所操作的数据类型被指定为一个参数,这种参数类型可以用在类,接口,方法的创建中,也就是泛型类,泛型接口,泛型方法。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马