java 中的 parseInt() 和 valueOf() 有什么区别?

新手上路,请多包涵

parseInt()valueOf() 有何不同?

They appear to do exactly the same thing to me (also goes for parseFloat() , parseDouble() , parseLong() etc, how are they different from Long.valueOf(string)

另外,按照惯例,其中哪一个更可取并且更经常使用?

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

阅读 577
2 个回答

好吧, Integer.valueOf(String) 的 API 确实说 String 被解释为 Integer.parseInt(String) 。 However, valueOf(String) returns a new Integer() object whereas parseInt(String) returns a primitive int .

如果你想享受 Integer.valueOf(int) 的潜在缓存优势,你也可以使用这个令人讨厌的东西:

 Integer k = Integer.valueOf(Integer.parseInt("123"))

现在,如果你想要的是对象而不是原语,那么使用 valueOf(String) 可能比用 parseInt(String) 制作一个新对象更有吸引力,因为前者始终存在于 Integer , Long , Double

原文由 Zach Scrivena 发布,翻译遵循 CC BY-SA 2.5 许可协议

这个论坛

parseInt() 返回原始整数类型( int ),由此 valueOf 返回 java.lang.Integer ,它是整数的对象代表。在某些情况下,您可能需要 Integer 对象,而不是原始类型。

当然,另一个明显的区别是 intValue 是一个实例方法,而 parseInt 是一个静态方法。

原文由 Michael Haren 发布,翻译遵循 CC BY-SA 2.5 许可协议

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