java的虚拟机是没有泛型类型对象的,所有的对象都属于普通类。 擦拭法 无论什么时候定义一个泛型,编译的时候都会自动的匹配一个相应的原始类。这个原始类名就是去掉类型参数后的泛型类型名。类型变量会被擦除,替换为限定类型,或Object(没有限定时)。 例如一个泛型类Pair如下: class Pair<T> { private T first; private T second; pub…
类型变量的限定 有时,类或方法需要对类型变量加以约束。下面是一个典型的例子,我们要计算数组中的最小元素: class ArrayListUnit { public static <T> T t (T …args) { T item = args[0]; for (int i=1; i < args.length; i++) if (item.compareTo(args[i]…
无限定通配符 使用类型通配符:? 比如:List<?>,Map<?,?> bool containsAll(Collection<?> c) List<?>是List、List等各种泛型List的父类。 list<?>可读,但不能写。 下面以可读特性举例2个: class Util { public static void show (A…