浅谈泛型擦除
getFirst擦除类型后的返回类型是Object。在编码阶段使用泛型时加上的类型参数,会被编译器在编译阶段去掉,这个过程叫做泛型擦除。编写一个泛型方法调用时,如果擦出了返回类型,编译器会插入强制类型转换。注意,类型参数T已经被擦出了,只留下了限定类型Comparable。(erased),并替换为其限定类型(或者,对于无限定的变量则替换为。这个原始类型的名字就是去掉类型参数后的泛型类型名。无论何时定义一个泛型类型,都会自动提供一个相应的。不过擦除类型后,它们都会编程原始的Pair类型。