1.一针见血,泛型
就是为了能够构造容器类而产生的。就像数组一样存储相同的值,而泛型的对象则用于存储不同的对象。,
2.T表示类型参数,也可称为占位符。其核心是为了告知编译器要使用的类型,然后编译器就会自动完场转换。
举个例子:
class Monkey{ } public class Zoo<T>{ private T a; public Zoo(T a){ this.a = a; } public T get(){ return a; } }
3.要知道元组(tuple),存储一组对象的容器。
4.泛型接口用于创建对象的类。
5.泛型方法:独立于类产生变化。类可泛型化,也可非泛型化。要把泛型参数列表置于返回值之前。
举个例子:
public class GenericsMethod{ public T void(T var){ Sytem.out.println(var.getClass().getName()); } }
6.在泛型代码内部,无法获取任何有关泛型参数类型的信息。
举个例子:
public class ErasedTypeEquivalence { public static void main(String[] args) { Class c1 = new ArrayList<String>().getClass(); Class c2 = new ArrayList<Integer>().getClass(); System.out.println(Arrays.toString(c1.getTypeParameters())); System.out.println(Arrays.toString(c2.getTypeParameters()));//二者相等 } }
- 局限性:基本类型无法作为类型参数。