A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡刚涛 中级黑马   /  2012-8-16 00:07  /  1596 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在视频中讲到自定义泛型方法时 说到自定义的T不能是int型等的基本类型,但自己编写是为什么可以通过呢?求解!!!
见图片。
有点疑惑???

int.jpg (151.75 KB, 下载次数: 13)

int.jpg

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

3 个回复

倒序浏览
Integer类型的自动装箱和拆箱功能和数值的范围无关,只要不超出int值的范围,都会自动装箱成Integer类型。
Lz说的173大于127,这里估计你把jvm自动生成的常用数值和自动装箱拆箱功能混淆了。
在-128到127的范围内,因为考虑到这些值在程序中用到的概率比较大,为了优化内存使用,这些值在程序一开始就存在于常量池中。
举例说明:
Integer a1 = new Integer(127);
Integer a2 = new Integer(127);
这里a1和a2都指向同一片内存区域。
Integer a3 = new Integer(128);
Integer a4 = new Integer(128);
这里a3和a4指向不同的内存区域
建议LZ再回去好好看视频,然后自己动手实验一下。
回复 使用道具 举报
问题应该是泛型数组就是 T[] ,不能这样定义泛型数组的。
回复 使用道具 举报
曹恒业 发表于 2012-8-16 00:26
Integer类型的自动装箱和拆箱功能和数值的范围无关,只要不超出int值的范围,都会自动装箱成Integer类型。
...

是的,明白了,谢谢!!!问题搞定了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马