这个泛型<E>中的E本身是自定义类吗
来源:3-2 栈的基本实现
tryl
2018-08-13
E内部构成是什么样的,为什么不直接用Object
写回答
1回答
-
liuyubobobo
2018-08-14
E 可以是任何类型,既可以是自定义的类型如Student,也可以是Java内部类型,如String,Integer等。
使用Object的缺点是,一方面,用户从我们设计的结构中取出元素,还需要手动强制类型转换;另一方面,后续的学习就会看到,对于一些数据结构的设计,我们还会对这个类型有约束(Java中称为bounded Type),当约束复杂到一定程度的时候,只能使用泛型表达。
泛型本身就是最标准的完成表示“任意类型”这一功能的方式。泛型这个语言机制本身,也是为了这种场景而创造的。如果打开JDK容器类的源码,全部是使用泛型完成的:)
当然,如果你愿意,也完全可以使用Object完成Stack的实现,这并不影响我们这个课程中所讲解的数据结构的底层原理的学习。如果有兴趣,我强烈建议你依据自己的思路实现一个属于自己的Stack,然后比较一下,使用Object和使用泛型,有什么区别。对语言的深刻理解就是在这种实验和比较中一点一点建立起来的:)
加油!:)
00
相似问题
泛型数组无法进行比较
回答 1
E[] 这个就是数组吗?
回答 1