【问题标题】:When and Why should I use long/double instead of Long/Double? [duplicate]何时以及为什么应该使用 long/double 而不是 Long/Double? [复制]
【发布时间】:2016-01-21 13:54:21
【问题描述】:

我是 Java/Groovy 的新手,我想问一下何时以及为什么应该使用 long 或 Long 数据类型。

我问这个问题,因为我需要为有 long 和 Long 类型的函数编写单元测试,并且我试图理解为什么它们会这样设置。

【问题讨论】:

  • 您的问题是为什么要使用 long 而不是其他类型(例如 int),或者什么时候应该使用 long 而不是 Long,反之亦然?
  • @user1675642 "为什么我应该使用 long 或 Long 数据类型"
  • 我知道 long 是一个原始类型,而 Long 是一个对象。我的问题是在哪种情况下我应该更好地使用它。因为当我为函数编写单元测试时,我无法长时间测试空输入。
  • Effective Java 2nd Ed Item 49 详细处理了这个问题(尽管书中的其他项目也涉及到这个问题)。
  • “因为当我为函数编写单元测试时,我无法长时间测试空输入”这是否暗示了选择其中之一的原因:如果您选择 long,你不需要测试通过null,因为你根本做不到。类型系统可以节省您的工作量。

标签: java grails groovy


【解决方案1】:

如果您不需要使用对象(Long/Double)的任何功能或其他特性,那么使用它们是没有意义的,因为它们会引入额外的开销 - 创建对象比创建原语对您的系统来说更昂贵。虽然这似乎是过早的优化,但它是一个非常容易进行的更改。

正如 Andy 指出的,您可以将它们与泛型一起使用,而您不能使用原语。我的意思是在函数下,但值得指出。

【讨论】:

  • "使用它们没有意义" 泛型?
  • 这就是我所说的函数的意思,但你是对的。更新了答案。
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多