Java泛型
-
创建泛型对象时,一定要指明类型变量的具体类型,争取让编译器检查出错误,比如不类型强转时发生错误。而不是让JVM运行时抛出不匹配异常。
Set <String> set = map.keySet();将map集合中的键(String类型)存储到set集合中。
-
泛型的擦除:所有泛型在编译阶段已被处理陈恒普通类和普通方法。到JVM中没有泛型,只有普通类和普通方法。
List<String>和List<Integer>在运行时实际上是相同的类型,均被擦除为"原生"类型List
-
但运行时可以通过反射获得List中的T的实际类型
List<String> list = new ArrayList<String>(); Class t = list.getClass(); Syso(s)结果为:java.lang.String