【发布时间】:2012-02-22 14:18:46
【问题描述】:
是否有可能以某种方式进行这样的 +- 操作?
BigInteger a = new BigInteger("1");
BigInteger b = new BigInteger("2");
BigInteger result;
a+=b;
//result = a.add(b);
ty
【问题讨论】:
标签: java biginteger
是否有可能以某种方式进行这样的 +- 操作?
BigInteger a = new BigInteger("1");
BigInteger b = new BigInteger("2");
BigInteger result;
a+=b;
//result = a.add(b);
ty
【问题讨论】:
标签: java biginteger
总之,没有。 Java 中没有运算符重载,BigInteger 不是特殊类型之一,编译器魔法支持+ 和+= 等运算符。
【讨论】:
String 也是不可变的,+= 运算符有语言支持。例如:String foo = "foo"; foo += "bar"; 您正在更改引用 foo,而不是它指向的对象的内容。
很遗憾没有。 Java 语言不支持运算符重载。该语法仅适用于通过自动装箱的其他数字基元包装器,这对 BigInteger 没有意义,因为没有等效的基元。
【讨论】:
不。 BigIntegers 是不可变的,所以你不能在创建后更改a 的值。而且通常的数学运算符也不能对它们起作用,所以你也不能用a += b。
你需要做你已经注释掉的事情——result = a.add(b);
【讨论】: