在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
1、Object是所有类的积累,范围更广,泛型T在使用的的时候就会具体到某一种类型
2、Object定义的类型在使用过程中需要强转,这就需要我们预先知道是什么类型,编译器不会检查Object类型的强转错误,只有在运行时才会抛出;泛型T的类型在编译期间就会进行检测,它的类型转换是自动的,隐式进行的