gpt4 book ai didi

java - 使用 new(Integer) 与 int

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:26 24 4
gpt4 key购买 nike

在我的 Java 课上,教授使用类似的东西:

integerBox.add(new Integer(10));

这和刚刚做的一样吗:

integerBox.add(10);

?我用谷歌搜索了一下,但找不到一种方法,而且教授含糊不清。我能找到的最接近的解释是:

An int is a number; an Integer is a pointer that can reference an object that contains a number.

最佳答案

基本上,像Vector 这样的Java 集合类, 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 类型的对象.在自动装箱出现之前,你不能混合 Integerint就像你在这里做的那样。

所以要点是:

integerBox.add(10)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 类型的对象.

关于java - 使用 new(Integer) 与 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com