1、自定义范型结构:范型类、范型接口、范型方法
范型类、范型接口在实例化时,如果没有指明范型,将被擦除,认为此范型类型为Object
泛型类可能有多个参数,此时应将多个参数一起放在尖括号内。比如: <E1,E2,E3>
泛型类的构造器如下:public GenericClass(){}。
泛型的指定中不能使用基本数据类型,可以使用包装类替换。
在类/接口上声明的泛型,在本类或本接口中即代表某种类型,可以作为非静态属性的类型、非静态方法的参数类型、非静态方法的返回值类型。但在静态方法中不能使用类的泛型。
不能使用new E[]。但是可以:E[] elements = (E[])new Object[capacity];
异常类不能是泛型的
父类有泛型,子类可以选择保留泛型也可以选择指定泛型类型:
子类不保留父类的泛型:按需实现
没有类型 擦除
具体类型
子类保留父类的泛型:泛型子类