码迷,mamicode.com
首页 > 其他好文 > 详细

使用泛型类的限制

时间:2015-11-02 13:45:04      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

1.不能使用new E() 即不能使用泛型类型创建实例。例如,下面语句错误:

E object = new E();

2.不能使用new E[],即不能使用泛型类型参数创建数组。例如,下面语句错误:

E[] elements = new E[capacity];

可以通过创建一个Object 类型的数组,然后将它的类型转换为E[]来规避这个限制,如下:

E[] elements = (E[])new Object[capacity];

3.不能使用泛型类创建数组。例如,下面代码错误:

ArrayList<String>[] list = new ArrayList<String>[10];

可以使用下面代码来避免限制:

ArrayList<String>[] list = (ArrayList<String>[])new ArrayList[10];

4.在静态环境下,不容许类的参数是泛型类型

由于泛型类的所有实例都有相同的运行类,所以泛型类的静态变量和方法是被它的所有实例共享的,所以在静态方法,数据域或者初始化语句中,为了类而引用泛型类参数是非法的:

public class Test<E>{

public static void m(E o1){

}

public static E o1;

static{

E o2;

}

}

5.异常类不能使泛型的。

使用泛型类的限制

标签:

原文地址:http://www.cnblogs.com/kisty/p/4929704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!