使用 int 与整数

新手上路,请多包涵

我遇到了一个使用整数变量来捕获要在 for 循环中使用的大小的类。这是好的做法还是我们应该使用 int 原始数据类型?

 Integer size = something.getFields().size();
for (Integer j = 0; j < size - 1; ++j)

原文由 developer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 422
2 个回答

提供了 Integer 类,以便可以以纯 OO 方式对值进行装箱/拆箱。在适当的地方使用 int 除非你特别需要以面向对象的方式使用它;在这种情况下 Integer 是合适的。

Java Int 与整数

然而,这里隐藏着非常不同的事情。一个整数是一个数字; an > Integer 是一个指针,可以引用包含数字的对象。

int 不是对象,不能传递给任何需要对象的方法。一个常见的情况是使用提供的集合类( List 、 Map 、 Set )——尽管可以编写这些类的版本来提供与对象版本类似的功能。每当使用内省时(例如在反射 API 中),经常需要包装类( Integer 、 Double 等)。

更好地描述何时使用一个与另一个:

在 int 和 Integer 之间选择

在详细说明原因之前,我将从应该如何使用这些类型开始。

  • 出于性能原因,首选 int
  • 采用对象的方法(包括通用类型,如 List<T> )将隐式要求使用 Integer
  • 使用 Integer 对于低值(-128 到
  1. 因为实习 - 使用 Integer.valueOf(int) 而不是 new Integer(int)
  • 不要将 ==!= 与整数类型一起使用
  • 考虑使用 Integer 当你需要表示没有值(空)
  • 当心将整数值拆箱为具有空值的 int

原文由 Mike McMahon 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你可以使用 int 这样做。如果该值可以是 null 或用作对象(例如泛型),请使用 Integer

通常使用哪一个并不重要,但通常 int 表现稍好。

原文由 Peter Lawrey 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题