可以说泛型是更好的多态。在jdk1.5之前没有泛型,我们如果想通过多达实现代码的重用,通常按你写的一样,以最宽泛的
对象Object为参数传入,但毕竟我们传入的通常不是Object不是一个具体的子类,比如Student,所以在代码内部如果
想要使用Student对象特有的方法,如getName(),就不得不对传入的参数进行强烈类型转换Student stu = (Student)obj;
stu.getName()...
而如果使用了泛型,预先就声明传入的将是什么类型的参数,在内部得到参数时就不用强制类型转换了。这样很方便,提高
了代码效率。
更重要的一条是,泛型能将可能出现的错误提前到编译阶段就暴露出,这样就能更早地解决错误。不至于造成不好的用户体验! |