什么是泛型

一种类型模板

允许写一个类但不把数据类型写死,而是用一个占位符<T>代替。

泛型的好处

  • 类型安全。源头上杜绝了类型放错的可能
  • 方便。不用手动强转类型

类型擦除

Java语言的泛型实现方式是——擦拭法

Java 的泛型只存在于编译期,在运行期(JVM执行时)会被全部“擦掉”,替换成 Object 和强制类型转换

所有工作由编译器来做,虚拟机一无所知!

擦拭带来的局限

  • 运行时,所有泛型箱子都“长得一样”。
  • 不能用 instanceof 检查泛型标签(instanceof 是在运行时检查的)
  • 不能用基本类 int, double,要用 IntegerDouble(Object才可以被安全擦拭)
  • 不能 new T()