泛型类
语法
class 泛型类名称<类型形参列表> { // 这里可以使用类型参数 }
class ClassName<T1, T2, ..., Tn> { }
class 泛型类名称<类型形参列表> extends 继承类/* 这里可以使用类型参数 */ { // 这里可以使用类型参数 }
class ClassName<T1, T2, ..., Tn> extends ParentClass { // 可以只使用部分类型参数 }
使用
泛型类<类型实参> 变量名; // 定义一个泛型类引用 new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象
class MyArray<T> { public Object[] array = new Object[10]; public void set(int pos,T val) { array[pos] = val; } public T get(int pos) { return (T)array[pos]; } public Object[] getArray() { return array; } }
public class Test { public static void main(String[] args) { MyArray<String> myArray = new MyArray<>(); } }
泛型上界
在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。
定义
class 泛型类名称<类型形参 extends 类型边界> { ... }
使用
class MyArray<T extends Number> { public Object[] array = new Object[10]; { array[pos] = val; } T { (T)array[pos]; } Object[] getArray() { array; } }
{ {


