我遇到了一个使用Integer变量来捕获要在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中),经常需要包装器类(Integer,Double等)。
何时使用一个相对于另一个的更好描述:
在int和Integer之间选择
在详细说明原因之前,我将从如何使用这些类型开始。
int
由于性能原因更喜欢- 接受对象(包括的通用类型
List<T>
)的方法将隐式要求使用Integer- 使用
Integer
价格相对便宜,因为实习的低值(-128〜127) -使用Integer.valueOf(int)
,而不是新的整数(INT)- 不要使用
==
或!=
与整数类型一起使用Integer
在需要表示缺少值时考虑使用(空)- 当心将装箱的整数值装箱为带空值的int
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句