使用整型与整数
我遇到了一个使用整数变量来捕获要在for循环中使用的大小的类。这是很好的做法,还是应该使用int基元数据类型?
Integer size = something.getFields().size();
for (Integer j = 0; j < size - 1; ++j)
我遇到了一个使用整数变量来捕获要在for循环中使用的大小的类。这是很好的做法,还是应该使用int基元数据类型?
Integer size = something.getFields().size();
for (Integer j = 0; j < size - 1; ++j)
提供 Integer 类,以便可以以纯 OO 方式对值进行装箱/拆箱。在适当的时候使用int,除非你特别需要以OO的方式使用它;在这种情况下,Integer 是合适的。
然而,这里正在发生非常不同的事情。整数是一个数字;> Integer 是可以引用包含数字的对象的指针。
...
int 不是对象,不能传递给任何需要对象的方法。一个常见的情况是使用提供的集合类(List,Map,Set) - 尽管可以编写这些类的版本,这些版本提供与对象版本类似的功能。每当使用内省时(例如在反射API中),通常都需要包装类(整数,双精度等)。
更好地描述何时使用一个与另一个:
在整型和整数之间进行选择
我将从如何使用这些类型开始,然后再详细介绍原因。
- 出于性能原因首选
int
- 采用对象(包括像这样的泛型类型)的方法将隐式地要求使用
List<T>
Integer
- 对于低值(-128 至
Integer
- 因为实习生 - 使用而不是新的整数(int)
Integer.valueOf(int)
- 不要使用 或 与整数类型一起使用
==
!=
- 在需要表示缺少值(空值)时考虑使用
Integer
- 请注意将整数值取消装箱,使其与空值整型对齐
如果您可以使用,请这样做。如果该值可以用作对象(例如泛型),请使用int
null
Integer
通常,您使用哪一个并不重要,但通常性能稍好一些。int