gpt4 book ai didi

java - 使用 NumberUtils.INTEGER_ONE 和其他此类实用程序的好处

转载 作者:搜寻专家 更新时间:2023-11-01 02:01:34 25 4
gpt4 key购买 nike

在 java 中,为了在 if 语句中进行比较,我写了

如果(x == 1)

并在代码审查中收到了使用 NumberUtils.INTEGER_ONE 而不是 1 的评论。我想知道它实际上会给代码带来什么好处。

最佳答案

NumberUtils.INTEGER_ONE 可能来自 commons-lang。

commons-lang中,它被定义为:

public static final Integer INTEGER_ONE = new Integer(1);

commons-lang3中,它被定义为:

public static final Integer INTEGER_ONE = Integer.valueOf(1);

第一个版本不使用内部整数缓存(因为当时还不存在)而第二个版本利用了它。

现在,无论您使用的是什么版本,您比较整数 值并且您不分配或创建整数 值对您的问题来说并不重要(缓存可能更有意义的情况)。


假设您以这种方式使用它:

if (x == NumberUtils.INTEGER_ONE)
  • 如果 x 是原语,它不是很有效,因为它会产生一个拆箱操作将 NumberUtils.INTEGER_ONE 转换为 1 int 原语。

  • 如果 x 是一个对象,这也不是一个好主意,因为 Integer 对象应该与 equals() 进行比较或 intValue()

关于java - 使用 NumberUtils.INTEGER_ONE 和其他此类实用程序的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45096345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com