BigInteger 常量行为
BigInteger Constant behaviour
为什么下面的说法return是错误的?
BigInteger bigInteger = new BigInteger("0");
System.out.println((BigInteger.ZERO == bigInteger));
我应该在 new BigInteger(?) 中传递什么,以便条件为真。
根据规范,new
总是会创建一个新实例(否则会失败)。
无论分配给 BigInteger.ZERO
的实例是什么,它都不是您在代码中使用 new BigInteger("0")
创建的实例。
因为它不是同一个实例,并且 ==
只有 returns 如果操作数引用同一个实例(前提是它们都是引用类型,在这种情况下它们都是),则结果为假。
您几乎不想使用 a == b
或 a != B
来比较对象。您应该改用 a.equals(b)
或 !a.equals(b)
。 (或者 Objects.equals
,如果 a
可能为空)。
为什么下面的说法return是错误的?
BigInteger bigInteger = new BigInteger("0");
System.out.println((BigInteger.ZERO == bigInteger));
我应该在 new BigInteger(?) 中传递什么,以便条件为真。
根据规范,new
总是会创建一个新实例(否则会失败)。
无论分配给 BigInteger.ZERO
的实例是什么,它都不是您在代码中使用 new BigInteger("0")
创建的实例。
因为它不是同一个实例,并且 ==
只有 returns 如果操作数引用同一个实例(前提是它们都是引用类型,在这种情况下它们都是),则结果为假。
您几乎不想使用 a == b
或 a != B
来比较对象。您应该改用 a.equals(b)
或 !a.equals(b)
。 (或者 Objects.equals
,如果 a
可能为空)。