背景

我们都知道泛型本质上是提供类型的"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymorphism)。其实泛型思想并不是 Java 最先引入的,C++ 中的模板就是一个运用泛型的例子。

GJ(Generic Java)是对 Java 语言的一种扩展,是一种带有参数化类型的 Java 语言。用 GJ 编写的程序看起来和普通的 Java 程序基本相同,只不过多了一些参数化的类型同时少了一些类型转换。实际上,这些 GJ 程序也是首先被转化成一般的不带泛型的 Java 程序后再进行处理的,编译器自动完成了从 Generic Java 到普通 Java 的翻译。

复制代码
public static void main(String[] args) {  ArrayList<Integer> ints = new ArrayList<Integer>();  ints.add(1);   ints.add(2);  ints.add(3);    ArrayList<String> sts = new ArrayList<String>();  sts.add("a");  sts.add("b");  sts.add("c");    System.out.println(ints.getClass() == sts.getClass());   }
复制代码