JAVA泛型中<T extends A & B & C>擦除时候应该把T擦除为什么呢?

求高人指点……不要把java编程思想的内容抄进来... 求高人指点……不要把java编程思想的内容抄进来 展开
 我来答
ylongshao1987
推荐于2016-10-22 · TA获得超过9811个赞
知道小有建树答主
回答量:1277
采纳率:100%
帮助的人:712万
展开全部
泛型是1.5中引入的一个新的概念,由于不用进行强制转换类型了,所以具有较高的安全性和易用性。因为泛型其实只是在编译器中实现的而虚拟机并不认识泛型类项,所以要在虚拟机中将泛型类型进行擦除。也就是说,在编译阶段使用泛型,运行阶段取消泛型,即擦除。

擦除是将泛型类型以其父类代替,如String 变成了Object等。其实在使用的时候还是进行带强制类型的转化,只不过这是比较安全的转换,因为在编译阶段已经确保了数据的一致性。
更多追问追答
追问
你……没回答我的问题啊……泛型擦除的话,擦除为其上界,这个例子的上界应该是哪个?
追答
擦除是将泛型类型以其父类代替。
也就是说这里擦除的是T,虚拟机中运行时会将T变成其父类代替,如果他父类还有父类,则继续往上走,所谓上界,应该就是最终父类。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式