【发布时间】:2014-10-14 15:32:26
【问题描述】:
我想知道这两个是否相同。任何人都可以验证吗? (我正在尝试用第二个替换第一个)
BigDecimal totalCurrentSales = new BigDecimal(0);
和
BigDecimal totalCurrentSales = BigDecimal.ZERO;
我问的原因是第一种方式声明它是不合适的,因为你不应该创建已经存在的BigInteger 和BigDecimal (ZERO, ONE, TEN) 的实例。所以我想知道我是否可以用第二种方式说它,它仍然被认为是创建一个实例。而不是我必须创建一个变量zero 或等于BigDecimal.ZERO 的东西。或者还有其他方法吗?
我试过了
BigDecimal totalCurrentSales = new BigDecimal(BigDecimal.ZERO);
但是eclipse不太开心。
【问题讨论】:
-
如果你真的理解了这些概念,那么你可能已经知道解决方案:使用后者
BigDecimal totalCurrentSales = BigDecimal.ZERO;。 -
BigDecimal.ZERO不是新实例。它是对现有实例的引用。 -
为什么需要一个 new 实例? @dusky 已经澄清
BigDecimal是不可变的。 -
那么我最初所说的是否正确?
BigDecimal totalCurrentSales = BigDecimal.ZERO;和你说的既然它是不可变的,那么说new是没有意义的? -
@erp 您不必在此处创建新实例,因为已经有一个 (BigDecimal.ZERO)。 BigDecimal.ZERO 永远不会改变。它总是必须为 0。
标签: java bigdecimal