gpt4 book ai didi

java - BigInteger 抛出空指针异常

转载 作者:行者123 更新时间:2023-12-02 06:57:24 25 4
gpt4 key购买 nike

我无法通过 BigInteger 添加另一个 BigInteger。有什么建议相关代码:

在类里面声明:

private BigInteger mTotientSum; 

在构造函数中完成:

BigInteger mTotientSum = BigInteger.ZERO;

在相对方法中:

  BigInteger totientMultiplier = BigInteger.valueOf(mTotientMulitplier);
for (long i = 1; i <= mMaxNum; i++)
{
BigInteger j = BigInteger.valueOf(i);
System.out.println(j.toString());
BigInteger num = j.multiply(totientMultiplier);
System.out.println(num.toString());
BigInteger totient = calculateTotient(num);
System.out.println(totient);
mTotientSum = mTotientSum.add(totient); //This is line 113
System.out.println("Sum at" + i + " = " + mTotientSum.toString());
}

我得到的输出是:

1
510510
17
16
16
Exception in thread "main" java.lang.NullPointerException
at Totient.run(Totient.java:113) (Note that line 113 is noted above.)
at Totient.main(Totient.java:131)

最佳答案

您正在隐藏构造函数中的变量。通过调用

BigInteger mTotientSum = BigInteger.ZERO;

您只是初始化本地 mTotientSum 变量并将类字段保留为空。

不要在构造函数中重新声明变量。相反,请执行以下操作:

mTotientSum = BigInteger.ZERO;

看出区别了吗?

关于java - BigInteger 抛出空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17138610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com