1:什么是泛型?

  1. Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
  2. 泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

2:什么是泛型的类型擦除?

  1. Java 的泛型是伪泛型,这是因为 Java 在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除
  1. List<Integer> list = new ArrayList<>();
  2. list.add(666);
  3. //在编译期会检测到 然后报错
  4. list.add("我是字符串");
  5. Class<? extends List> clazz = list.getClass();
  6. Method add = clazz.getDeclaredMethod("add", Object.class);
  7. //可以通过反射添加 反射已经越过了编译器
  8. add.invoke(list, "我是字符串");
  9. System.out.println(list)

3:常用的泛型通配符(待补充)