Java BigDecimal+;=(添加和分配)…如何执行此操作?

Java BigDecimal+;=(添加和分配)…如何执行此操作?,java,bigdecimal,Java,Bigdecimal,我似乎找不到BigDecimal类中的“add and assign”方法 有什么办法吗 如果您不理解我的问题,我会尝试这样做: a+=b 但是我试图用BigDecimal来实现它,BigDecimal类中有一个add方法 你必须做-a=a.add(b) 看看。否-没有等效的机制 只需使用add方法大小数就是对象。+=运算符仅适用于原语 所以我认为你不能做你想做的事。我想你会喜欢这样的东西: BigDecimal bd= getNumber(); bd.addAndAssign(5); Big

我似乎找不到BigDecimal类中的“add and assign”方法

有什么办法吗

如果您不理解我的问题,我会尝试这样做:

a+=b


但是我试图用BigDecimal来实现它,
BigDecimal
类中有一个
add
方法

你必须做-
a=a.add(b)


看看。

否-没有等效的机制


只需使用
add
方法

大小数就是对象。
+=
运算符仅适用于原语


所以我认为你不能做你想做的事。

我想你会喜欢这样的东西:

BigDecimal bd= getNumber();
bd.addAndAssign(5);
BigDecimal
不可变的对象,因此,您不能这样做

您必须使用
add()
并将其与自身相等,例如
a=a.add(b)

您可以使用该方法


由于BigDecimal是不可变的,因此不能期望
a.add(b)
变异
a
。必须将新的
BigDecimal
对象返回到引用
a
。因此,
a=a.add(b)
是您所需要的。

我得到了
java bigdecimal add
的第一个google结果。您不能对bigdecimal使用常规的
+-*/
运算符,因为它们不是原语。太糟糕了,这可能是我最讨厌的关于Java的事情之一(即使我喜欢它),谢谢你们回答了我的问题并告诉我需要做什么。我真傻,真不敢相信我没有想到这一点。非常感谢。以防你想知道详情。BigDecimal是一个与Integer相同的类。现在,在Java中,整数有一个基本类型,即int。因此,对于int,您可以做您想做的事情,即+=,然而,对于BigDigPiple和整数,你不能。我理解,我假设有人会把那个操作符写为BigDeCuMy类的一种方法,类似于C++中的方法,你可以为任何类编写方法来使用+,-,*,和赋值操作符。基于这里的答案,我假设您无法做到这一点,但在java>1.5中,自动装箱是不正确的,您可以使用WrapperClass,例如Integer Double。。
a = a.add(b);