Java 如何对对象进行算术运算

Java 如何对对象进行算术运算,java,math,Java,Math,我在两个简单的java文件中有几个biginger对象。但是,由于它们不是基元类型,算术运算符对它们不起作用 每次使用运算符时都会出现错误,如下所示: .\_Mathematics\Formulas\Factorial.java:10: error: bad operand types for binary o perator '*' result *= i; ^ first typ

我在两个简单的java文件中有几个
biginger
对象。但是,由于它们不是基元类型,算术运算符对它们不起作用

每次使用运算符时都会出现错误,如下所示:

.\_Mathematics\Formulas\Factorial.java:10: error: bad operand types for binary o
perator '*'
                        result *= i;
                               ^
  first type:  BigInteger
  second type: int
这是:

package _Mathematics.Formulas;
import java.math.*;

public class Factorial<T extends Number> {
    public T o;
    public BigInteger r;
    public Factorial(int num) {
        BigInteger result = new BigInteger("1");
        for(int i = num; i > 0; i--)
            result *= i;
        this.o = num;
        this.r = result;
    }
} 
package\u数学公式;
导入java.math.*;
公共类阶乘{
公共交通;
公共大整数r;
公阶乘(整数){
BigInteger结果=新的BigInteger(“1”);
对于(int i=num;i>0;i--)
结果*=i;
这个.o=num;
这个。r=结果;
}
} 

package\u数学公式;
导入java.math.*;
公共阶级权力{
公共交通;
公共大整数r;
公共权力(总人数,总功率){
BigInteger结果=新的BigInteger(1);
对于(int i=0;i
我四处寻找了一会儿,想知道如何解决这个问题,但找不到答案

有人能帮我吗


谢谢。

BigInteger
有用于此的运算符方法。由于
biginger
本身是不可变的,因此需要将该值分配给结果

例如下面的例子

result *= num;
将成为

result = result.multiply(num);

您应该在类中使用multiply方法。

为算术运算定义了自己的方法。因此,

result *= num;
应该是

result = result.multiply(num);

同样地,如果你想
,或者

你看过BigInteger javadoc了吗?
result = result.multiply(num);