摘自Thinking in java:
泛型的目的是解耦类/方法与所使用的类型之间约束:泛型可以让类/方法在运行时使用多种类型。
一开始的约束是继承,通过多态来解决“类/方法可以适用于许多许多的类型的问题”。
但是接口比继承使得代码更加易于扩展(易于增加新类)。
但是接口无法在编译时实现“类型安全”,但是泛型,通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)[1]。
参考:[1]https://blog.youkuaiyun.com/icecino/article/details/9328933
泛型出现的原因:
1.创造容器类,指定容器要持有什么类型的对象,并且有编译器来保证类型的正确性;
泛型的好处:
1.能够简单而安全的创建复杂的模型;