在我的 Java 课上,教授使用了类似的内容:
integerBox.add(new Integer(10));
这和刚刚做的一样吗:
integerBox.add(10);
?
我用谷歌搜索了一下,但找不到一种方法或另一种方法,而且教授也很含糊。
我能找到的最接近的解释是:
int 是一个数字; Integer 是一个可以引用的指针
包含数字的对象。
基本上,Java 集合类如Vector
, ArrayList
, HashMap
等不要采用原始类型,例如int
.
在过去(Java 5 之前),你不能这样做:
List myList = new ArrayList();
myList.add(10);
你必须这样做:
List myList = new ArrayList();
myList.add(new Integer(10));
这是因为10
只是一个int
通过它自己。Integer
是一个类,它包装了int
原始的,并制作一个new Integer()
意味着你真的在制作一个类型的对象Integer
。在自动装箱出现之前,你无法混合Integer
and int
就像你在这里做的那样。
所以要点是:
integerBox.add(10)
and integerBox.add(new Integer(10))
将导致Integer
被添加到integerBox
,但这只是因为integerBox.add(10)
透明地创建Integer
为你。两种方式不一定都能创造出Integer
同样的方式,因为一个是明确创建的new Integer
,而自动装箱将使用Integer.valueOf()
。我将按照教程的假设进行integerBox
是某种类型的集合(它接受对象,而不是基元)。
但从这个角度来看:
int myInt = 10;
Integer myInteger = new Integer(10);
一个是原语,另一个是类型的对象Integer
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)