zoukankan      html  css  js  c++  java
  • 使用泛型类的限制

    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.异常类不能使泛型的。

  • 相关阅读:
    (转)Maven实战(三)Eclipse构建Maven项目
    刷欢乐豆的方法
    R-pie()
    R-plot()
    10只老鼠与1000瓶药水
    资源共享
    第一只python小爬虫
    正则表达式之python实现
    马踏棋盘之贪心算法优化
    八皇后之回溯法解决
  • 原文地址:https://www.cnblogs.com/kisty/p/4929704.html
Copyright © 2011-2022 走看看